Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zmiana sortowania rekordów w bazie za pomocą odnośnika
Forum PHP.pl > Forum > Przedszkole
Zagiewa
Witam. Chcę trochę przebudować mój skrypt wyświetlający bazę linków i mam jedno pytanko ale najpierw wytłumaczę jak to obecnie wygląda. Posiadam zapisane w bazie MySQL listę linków posegregowanych w kategorie. Wyświetlam je na stronie za pomocą pętli w pięciu kategoriach z czego nazwa kategorii jest tylko nazwą. Lista wyświetlanych linków jest segregowana od najnowszego do najstarszego za pomocą ORDER BY nazwa_kolumny DESC i gdy bym chciał zmienić sposób sortowania wystarczy, że zamiast DESC użyję czegoś innego ale ja chcę to zrobić inaczej. Chcę z nazwy kategorii która obecnie jest tekstem zrobić link który po kliknięciu posegreguje je najpierw alfabetycznie a jak kliknę raz jeszcze posegreguje je według ostatnio dodanego i pytanie. Jak ma wyglądać odnośnik aby spowodował zmianę sortowania?
dziamber
A nie łatwiej zrobić dwa odnośniki? Ale jak się tak upierasz przy jednym to ok. Piszę z głowy więc pomysł może nie być jakiś mega funkcjonalny.
  1. if($_GET['sort'] == "sortuj") {
  2. if(isset($_SESSION['klik'])) {
  3. $query = "SELECT * FROM kategorie WHERE cos = 'cos' ORDER BY kategoria_data_dodania DESC";
  4. $_SESSION['klik'] = "";
  5. } else {
  6. $query = "SELECT * FROM kategorie WHERE cos = 'cos' ORDER BY kategoria_nazwa DESC";
  7. $_SESSION['klik'] = 1;
  8. }
  9. } else {
  10. // wyswietl tabele czy co tam z lista linkow
  11. }

Link wygląda tak
  1. <a href="plik.php?sort=sortuj">sortuj</a>

Liczbę kliknięć zapisujesz w zmiennej sesyjnej $_SESSION['klik']. Jeżeli jest ona pusta to wykonujesz sortowanie alfabetyczne i zapisujesz wartość 1 do zmiennej. W taki sposób za drugim kliknięciem instrukcja warunkowa wychwyci, że w zmiennej jest wartość i zastosuje sortowanie wg. daty dodania. Czyścimy zmienną, i za następnym kliknięciem w link rozpoczynamy wszystko na nowo. Mam nadzieję, że zadziała. Na chwilę obecną nie miałem lepszego pomysłu smile.gif
Zagiewa
Co prawda zaraz dopiero wprowadzę skrypt do kodu ale konstrukcja jest banalna więc poradzę sobie bez problemu - dzięki wielkie biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.