Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana kolejności wyświetlanych elementów
Forum PHP.pl > Forum > Przedszkole
Nyny
Witam,
mam strone na której z bazy danych wybierane sa wszystkie rekordy. Jest to powiedzmy nazwa uzytkownika, email i data rejestracji.
Chcialbym miec mozliwosc po kliknieciu na nazwe uzytkownika zmienic kolejnosc wyswietlanych elementów zamiast od a-z to od z-a itp..
Prosze mi podpowiedziec jak to zrobic? Czy tutaj moze miec tez zastosowanie operator trójargumentowy?
Ponizej kodzik:

  1. <?php
  2. require_once ('../../autoryzacja.php');
  3. $page_title = 'Lista użytkowników';
  4. include_once ('../includes/a_naglowek.html');
  5.  
  6. if (!$authorized) {
  7. echo '<p style="color: red;"><b>Proszę podać poprawną nazwę użytkownika i hasło!
  8. Kliknij <a href="index.php">tutaj</a> aby spróbowac ponownie!</b></p>';
  9. } else {
  10. require_once ('../../mysql_connect.php');
  11. $display = 4;
  12.  
  13. if (isset($_GET['np'])) {
  14. $num_pages = $_GET['np'];
  15. } else {
  16. $query = "SELECT user_id FROM users";
  17. $result = @mysql_query($query);
  18. $num_records = mysql_num_rows($result);
  19.  
  20. if ($num_records > $display) {
  21. $num_pages = ceil($num_records/$display);
  22. } else {
  23. $num_pages = 1;
  24. }
  25. }
  26.  
  27. if (isset($_GET['s'])) {
  28. $start = $_GET['s'];
  29. } else {
  30. $start = 0;
  31. }
  32.  
  33. $query = "SELECT username, email, registration_date FROM users ORDER BY username ASC 
    LIMIT
  34. $start, $display";
  35. $result = @mysql_query($query);
  36. $num = mysql_num_rows($result);
  37.  
  38. if ($num > 0) {
  39. echo '<br /><h2>Zarejestrowani użytkownicy</h2>';
  40.  
  41. if ($num_pages > 1) {
  42. echo '<p>';
  43. $current_page = ($start/$display) + 1;
  44.  
  45. if ($current_page != 1) {
  46. echo '<a href="lista_uzytkownikow.php?s=' . ($start - $display) . '&np=' . $num_pages . '">Wstecz </a>';
  47. }
  48.  
  49. for ($i=1; $i<=$num_pages; $i++) {
  50. if ($i != $current_page) {
  51. echo '<a href="lista_uzytkownikow.php?s=' . ($display*($i-1)) . '&np=' . $num_pages . '">' . ' ' . $i . ' ' . '</a>';
  52. } else {
  53. echo ' ' . $i . ' ';
  54. }
  55. }
  56.  
  57. if ($current_page != $num_pages) {
  58. echo '<a href="lista_uzytkownikow.php?s=' . ($start + $display) . '&np=' . $num_pages . '">Dalej </a>';
  59. }
  60. echo '</p>';
  61. }
  62.  
  63. echo '
  64. <table style="margin: 0 auto; border-spacing: 3px; border-collapse: spacing; width:100%;">
  65. <tr>
  66. <td style="text-align: center; padding: 1px; width: 25%;">
  67. <b>Nazwa użytkownika</b>
  68. </td>
  69. <td style="text-align: center; padding: 1px; width: 25%;">
  70. <b>Adres email</b>
  71. </td>
  72. <td style="text-align: center; padding: 1px; width: 25%;">
  73. <b>Data rejestracji</b>
  74. </td>
  75. </tr>
  76. ';
  77.  
  78. $bg = '#eee';
  79.  
  80. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  81. $bg = ($bg=='#eee' ? '#fff' : '#eee');
  82. echo '
  83. <tr style="background:', $bg, '">
  84. <td style="text-align: center; padding: 1px; width: 25%;">', $row[0], '</td>
  85. <td style="text-align: center; padding: 1px; width: 25%;">', $row[1], '</td>
  86. <td style="text-align: center; padding: 1px; width: 25%;">', $row[2], '</td>
  87. </tr>
  88. ';
  89. }
  90.  
  91. echo '</table>';
  92. } else {
  93. echo '<br /><h2>Zarejestrowani użytkownicy</h2>';
  94. echo 'Aktualnie nie ma zarejestrowanych użytkowników';
  95. }
  96. }
  97. include ('../includes/a_stopka.html');
  98. ?>
jastu
Wrzuć do urla nazwę kolumny którą chcesz sortowac wyniki i rodzaj sortowania, ewentualnie jeśli tyhc dwóch zmiennych nie ma ustal wartości domyślne

Kod
index.php?order=nazwa_uzytkownika&type=asc


pobierz z urla zmienne ($_GET) i wstaw do zapytania SQL
(najporostszy sposób w którym pomijam bezpieczeństwo takiego rozwiązania)

Pzdr
Nyny
Chodzi mi o cos dokladie takiego jak jest na allegro np sortujac cene od najnizszej do najwyzszej i analogicznie. Widze ze na allegro tez sortowanie przesylane jest zmienna GET. Pytanie tylko jak zrobic zeby za 1szym kliknieciem zrobic ASC a za drugim DESC?
Trzeba uzyc tu tego operatora trojwarunkowego ?
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.