Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sortowanie wybierane ze stronki - kod
Oscar_83
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 10.05.2007

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


Witam, mam mały problem otóż chciałbym wprowadzić możliwość sortowania po kliknięciu odpowiednio na danym nagłówku tabeli. Tabele mam wczytywane z bazy, podaje kod dla rozjaśnienia sprawy:

  1. <?php
  2. $polaczenie = mysql_connect("localhost", "root", "krasnal") or die("Sprawdź połączenie z serwerem");
  3. mysql_select_db("tabele",$polaczenie);
  4. $query = "SELECT Lp,Imie_i_Nazwisko,Pozycja,Numer_na_koszulce,Wiek,Narodowosc,Uwagi F
    ROM zawodnicy"
    ;
  5. $results = mysql_query($query, $polaczenie)
  6. or die (mysql_error());
  7. $num_zawodnicy1 = mysql_num_rows($results);
  8. $zawodnicy1_zawod=<<<ZAW
  9. <h2><center>Zawodnicy w drużynie</center></h2>
  10. <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
  11.  <tr>
  12.  <th>L.p</th>
  13.  <th>Imię i Nazwisko</th>
  14.  <th>Pozycja</th>
  15.  <th>Numer na koszulce</th>
  16.  <th>Wiek</th>
  17.  <th>Narodowosc</th>
  18.  <th>Uwagi</th>
  19.  </tr>
  20. ZAW;
  21. $zawodnicy1_szczegoly = '';
  22. while($linia=mysql_fetch_array($results)){
  23. $Lp = $linia['Lp'];
  24. $Nazwisko = $linia['Imie_i_Nazwisko'];
  25. $Pozycja = $linia['Pozycja'];
  26. $Numer_na_koszulce = $linia['Numer_na_koszulce'];
  27. $Wiek = $linia['Wiek'];
  28. $Narodowosc = $linia['Narodowosc'];
  29. $Uwagi = $linia['Uwagi'];
  30.  
  31. $zawodnicy1_szczegoly .=<<<ZAW
  32.   <tr>
  33. <td>$Lp</td>
  34. <td>$Nazwisko</td>
  35. <td>$Pozycja</td>
  36. <td>$Numer_na_koszulce</td>
  37. <td>$Wiek</td>
  38. <td>$Narodowosc</td>
  39. <td>$Uwagi</td>
  40.   </tr>
  41. ZAW;
  42. }
  43. $zawodnicy1_calosc ="</table>";
  44.  
  45. $zawodnicy1 =<<<ZAWODNICY
  46.  $zawodnicy1_zawod
  47.  $zawodnicy1_szczegoly
  48.  $zawodnicy1_calosc
  49. ZAWODNICY;
  50. echo "W drużynie znajduje się obecnie $num_zawodnicy1 zawodników.";
  51. echo $zawodnicy1;
  52. mysql_close($polaczenie);
  53. ?>

Chciałbym aby była możliwość sortowania z pozycji stronki poprzez kliknięcie na:
L.p
Imię i Nazwisko
Pozycja
Numer na koszulce
Wiek
Narodowosc
Uwagi

Jestem mocno początkujący, choć już naprawde sporo przy tym siedziałem i nie mogę dojść :/
Prosze o pomoc - lub chociaż naprowadzenie mnie.
Z góry bardzo dziękuję

Ten post edytował Oscar_83 10.05.2007, 15:11:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


No to w zależności od danych z tablicy $_GET tworzysz linki. Jeśli aktualnie sortujesz daną kolumnę rosnąco, to tworzysz link do sortowania tek kolumny malejąco, etc.

  1. <?php
  2.  
  3. // Jeśli przesłane zostały jakieś dane metodą GET to je walidujemy, jeśli nie to u
    stawiamy domyślne
  4. $col = array('lp', 'nazwisko', 'pozycja', 'numer_na_koszulce', 'wiek', 'narodowosc', 'uwagi');
  5. $sort = ( isset( $_GET['sort'] ) && in_array( strtolower( $_GET['sort'] ), $col ) ) ? strtolower( $_GET['sort'] ) : 'lp';
  6. $order = ( isset( $_GET['order'] ) && in_array (strtolower( $_GET['order'] ), array('asc', 'desc') ) ) ? strtolower( $_GET['order'] ) : 'asc';
  7.  
  8.  
  9. // Wykonujemy zapytanie i wyświetlamy wyniki
  10. // ...
  11.  
  12.  
  13. // Tworzymy linki
  14. echo('<a href="plik.php?sort=lp&amp;order=' . ( ( $sort == 'lp' ) && ( $order == 'asc' ) ) ? 'desc' : 'asc' . '">Lp</a>');
  15. echo('<a href="plik.php?sort=nazwisko&amp;order=' . ( ( $sort == 'nazwisko' ) && ( $order == 'asc' ) ) ? 'desc' : 'asc' . '">Nazwisko</a>');
  16. echo('<a href="plik.php?sort=pozycja&amp;order=' . ( ( $sort == 'pozycja' ) && ( $order == 'asc' ) ) ? 'desc' : 'asc' . '">Pozycja</a>');
  17. ?>


Ten post edytował Kicok 11.05.2007, 07:57:16
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 18:46