Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]jak sortować dane
Forum PHP.pl > Forum > Przedszkole
masta089
mam kolumny Nr. Nazwa: Gatunek: Rok: Gdzie: Uwagi: i chciałbym aby po naciśnięciu nr sortowało się od a-z a po ponownym kliknięciu sortowało by się od z-a. tak samo jak na allegro.
iVorIus
Coś w stylu:
jeżeli $order == 'asc' , to w zapytaniu sql dołączamy "ORDER BY Nr ASC",
jeżeli $order == 'desc' to w zapytaniu sql dołączamy "ORDER BY Nr DESC".

Dzięki czemu otrzymamy ASC - sortowanie od a-z, a DESC - sortowanie od z-a.
Smertius
Najwygodniej dane sortować na poziomie zapytania sql.
Np.
  1. SELECT * FROM tabela ORDER BY gatunek
Wicepsik
Jeśli nie chcesz za każdym razem przeładowywać strony może warto zastosować plugin Tablesorter 2.0 do jQuery?

http://tablesorter.com/docs/
masta089
mam kod
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  5. <link href="glowny.css" rel="stylesheet" type="text/css" />
  6. <link rel="stylesheet" href="style.css" type="text/css" media="print, projection, screen">
  7. <title>Filmy 1.0 beta</title>
  8. <script type="text/javascript" src="js/jquery-latest.js"></script>
  9. <script type="text/javascript" src="js/jquery.js"></script>
  10. <script type="text/javascript">
  11. $(function() {
  12. $("#tablesorter-demo").tablesorter({sortList:[[0,0],[2,1]], widgets: ['zebra']});
  13. $("#options").tablesorter({sortList: [[0,0]], headers: { 3:{sorter: false}, 4:{sorter: false}}});
  14. });
  15. </script>
  16.  
  17.  
  18. </head>
  19.  
  20. <body id="body">
  21. <?php
  22. // połączenie z bazą
  23. // UWAGA: w linii poniżej zmień na twoją nazwę użytkownika i hasło
  24. $polaczenie = mysql_connect('localhost', 'root', '') or die("Brak połączenia: " . mysql_error());
  25. $baza = mysql_select_db('filmy',$polaczenie) or exit("Nie wybrano bazy, błąd: " . mysql_error());
  26. ?>
  27.  
  28. <?php
  29. // wygeneruj tabele ze wszystkimi produktami
  30.  
  31. $zapytanie = "SELECT * FROM filmy ORDER BY nazwa";
  32. $produkty = mysql_query($zapytanie) or die ('Blad: ' . mysql_error());
  33. ?>
  34.  
  35. <table id="tablesorter-demo" class="tablesorter" border="0" cellpadding="0" cellspacing="1">
  36. <thead>
  37. <tr>
  38. <th class="header headerSortDown">Nr.</th>
  39. <th class="header">Nazwa:</th>
  40. <th class="header headerSortUp">Gatunek:</th>
  41. <th class="header">Rok:</th>
  42. <th class="header">Gdzie:</th>
  43. <th class="header">Uwagi:</th>
  44.  
  45. </tr></thead>
  46.  
  47.  
  48. <?php
  49. while ($rekord = mysql_fetch_assoc($produkty)) {
  50. ?>
  51. <tbody>
  52. <tr class="even">
  53. <td><?php echo $rekord['nr']; ?></td>
  54. <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=edytuj&nr=<?php echo $rekord['nr'];?>">
  55. <?php echo $rekord['nazwa'];?></a></td>
  56. <td><?php echo $rekord['gatunek'];?></td>
  57. <td><?php echo $rekord['rok'];?></td>
  58. <td><?php echo $rekord['gdzie'];?></td>
  59. <td><?php echo $rekord['uwagi'];?></td>
  60.  
  61. </tr></tbody>
  62. <?php
  63. }
  64. ?>
  65. <table>
lecz strzałki idą w górę i w dół a sortowanie nie stoi w miejscu.
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-2024 Invision Power Services, Inc.