Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Sortowanie wyników
Forum PHP.pl > Forum > Przedszkole
emajl22
Napisałem wyszukiwarkę, która dobrze działa, jednak teraz chciałbym dopisać opcję sortowania wyników wg. wybranej kolumny. Wyszukiwarka działa w ten sposób, że po wpisaniu w nią jakiegoś hasła, wyskakują odpowiednie wyniki, czyli normalnie winksmiley.jpg Wyświetlanie zrobiłem w tabelce.

Problem polega na tym, że po wyszukania jakiegoś hasła i kliknięcia w odnośnik np. index.php?sort=data (sortuj wg. daty), skrypt w ogóle nic nie pokazuje.

Całość mam w 1 pliku, na samym dole mam formularz wyszukiwarki, a nieco nad nim skrypt php odbierający z niej dane. Wszystko odbieram POSTem. Myślałem, że może to być wina tego, że $_POST wygasa, jak przejdę w odnośnik do sortowania wg. wybranego kryterium, ale już sam nie wiem.

A sortowanie wygląda mniej więcej tak:

  1. if ($_GET['sort']=="pid") {
  2. $query = ("zapytanie + ORDER BY `pid` DESC");
  3. }
  4.  
  5. if ($_GET['sort']=="date") {
  6. $query = ("zapytanie + ORDER BY `date` DESC");
  7. }
  8. while ($product = mysql_fetch_assoc($query)) {
  9. ...
  10. }


Proszę o pomoc, pozdrawiam.
CuteOne
  1.  
  2. $sort = array('p'=>'pid', 'date'=>'date'); //tablica, która przechowuje nazwy kolumn
  3.  
  4. $ord = in_array($_GET['sort'], $sort) ? $sort[$_GET['sort']] : 'pid';
  5.  
  6. $query = "SELECT * FROM cus ORDER BY $ord DESC";
  7.  
emajl22
Tak też myślałem, ale to nic nie pomogło, bo jak przejdę pod adres np. index.php?sort=cos, to wyniki znikają i pojawia się wyszukiwarka. Coś chyba z tym $_POST, ale czy jest to możliwe? Jeżeli tak, to jak temu zaradzić?
CuteOne
  1. $sort = array('p'=>'pid', 'date'=>'date'); //tablica, która przechowuje nazwy kolumn
  2.  
  3. $ord = in_array($_GET['sort'], $sort) ? $sort[$_GET['sort']] : 'pid';
  4.  
  5. $query = "SELECT * FROM cus ORDER BY $ord DESC"; // FROM cus (nie wiem jak nazywa się twoja tabela)
  6.  
  7. $select = mysql_query($query) or die(mysql_error());
  8.  
  9. if(!mysql_num_rows($select)) { die('Brak wyników do wyświetlenia'); }
  10.  
  11. while($row = mysql_fetch_row($select)) {
  12.  
  13. echo $row[0];
  14. }


wywołaj index.php?sort=date
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.