Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Sortowanie wyników
emajl22
post 15.12.2010, 16:57:09
Post #1





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


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.

Ten post edytował emajl22 15.12.2010, 16:59:08


--------------------
Go to the top of the page
+Quote Post
CuteOne
post 15.12.2010, 17:09:09
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  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.  
Go to the top of the page
+Quote Post
emajl22
post 15.12.2010, 17:27:08
Post #3





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


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ć?


--------------------
Go to the top of the page
+Quote Post
CuteOne
post 15.12.2010, 19:18:56
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  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


Ten post edytował CuteOne 15.12.2010, 19:19:38
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 16:46