Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: stronicowanie i sortowanie danych
Forum PHP.pl > Forum > Przedszkole
krzyszbi
witam wszystkich

odrazy przejde do sedna sprawy
robie stronkę na której ma sie wyświetlac max 15 "konsultantów"
spox to nie problem ( proste stronicowanie i po sprawe) ale teraz mam inny problemik i nie wiem nawet jak go ugryść
otóż musze dorobic sortowanie do tego tzn.
imie 2 selekty A-z i Z-A
nazwisko 2 selekty A-z i Z-A
miejscowość selecty z niepowtarzającymi się nazwami miejscowości
region podpobnie j/w
samo sortowanie mi dziła ( w innym pliku ) mi dziła
ale teraz pytanie jak to połączyć aby razem działało ( przy przechodzeniu o "następnej strony " gubi zapytanie i lipa)

teraz nie jest podpiete sortowane ale takie pola mają być brane pod uwage

z góry dzieli za pomoc
Wave
Albo zapomniałeś pokazać kod, albo liczysz na jasnowidzów.
nospor
Cytat
przy przechodzeniu o "następnej strony " gubi zapytanie i lipa
znaczy masz ba mysli ze gubi warunki sortowania?
No niestety, ale musisz zapamietywac lub przekazywac dalej warunki sortowania. jesli do nastepnej strony przechodzisz na podstawie linku, to do linku musisz dodawac te warunki. jesli przejscie do nastepnej strony odbywa sie poprzez wyslanie formularza, to tez muszą te pola sie tam znaleźć. Ale w miare najprostrzym rozwiązaniem jest pamietanie w sesji warunkow sortowania. Zrob jak ci bedze wygodniej smile.gif
krzyszbi
sorki
juz podaje mó kod

  1. <?php
  2.  
  3. $intLimit =15;
  4. $query = "SELECT * FROM komsultanci";
  5. $result = mysql_query ($query);
  6. $intCount = mysql_num_rows($result);
  7. echo'<form name="szukaj" action="index.php?zak=2&amp;podzak=1" method="post"><table border="1" align="left">
  8.  
  9.  
  10. <tr>
  11. <td>Imię</td>
  12. <td>Nazwisko</td>
  13. <td>Nr własny</td>
  14. <td>Region</td>
  15. <td>Miejscowość</td>
  16. <td>Nr wprowdzajacego</td>
  17. </tr>
  18. <tr>
  19. <td>
  20. <select name="imie">
  21. <option value="1">A-Z
  22. <option value="2">Z-A
  23. </select>
  24. </td>
  25. <td>
  26. <select name="nazwisko">
  27. <option value="1">A-Z
  28. <option value="2">Z-A
  29. </select>
  30. </td>
  31. <td></td>
  32. <td>';
  33. echo '<select name="region">';
  34. echo'<option value="">Wybierz wszystkie.';
  35. $query = "SELECT DISTINCT(region) FROM komsultanci";
  36. $result = mysql_query ($query);
  37. while ($row = mysql_fetch_array($result))
  38. {
  39. echo'<option value="'.$row['region'].'">'.$row['region'];
  40. }
  41. echo'</select>';
  42. echo'</td>
  43. <td>';
  44. echo '<select name="miejscowosc">';
  45. echo'<option value="">Wybierz wszystkie.';
  46. $query = "SELECT DISTINCT(miejscowosc) FROM komsultanci";
  47. $result = mysql_query ($query);
  48. while ($row = mysql_fetch_array($result))
  49. {
  50. echo'<option value="'.$row['miejscowosc'].'">'.$row['miejscowosc'];
  51. }
  52. echo'</select>';
  53. echo'</td>
  54. <td>Nr wprowdzajacego</td>
  55. </tr>
  56. ';
  57. if( empty( $_GET['poz'] ) )
  58. {
  59.  $intCurrentPage = 0;
  60. }
  61. else
  62. {
  63.  $intCurrentPage = $_GET['poz'];
  64. }
  65. if (isset($_POST['sort']))
  66. {
  67.  $wh = array();
  68. if (!empty($_POST['miejscowosc']))
  69.  $wh[] = "miejscowosc='".$_POST['miejscowosc']."'";
  70. if (!empty($_POST['region']))
  71.  $wh[] = "region='".$_POST['region']."'";
  72. if (!empty($_POST['mh_od']))
  73.  $wh[] = 'mh >= '.$_POST['mh_od'];;
  74. if (!empty($_POST['mh_do']))
  75.  $wh[] = 'mh <= '.$_POST['mh_do'];
  76.  $wh2 = array();
  77. if (!empty($_POST['imie']) AND $_POST['imie']==)
  78. $wh2[] = 'ORDER BY imie ASC';
  79. if (!empty($_POST['imie']) AND $_POST['imie']==2)
  80.  $wh2[] = 'ORDER BY imie DESC';
  81. if (!empty($_POST['nazwisko']) AND $_POST['nazwisko']==1)
  82.  $wh2[] = ' nazwisko ASC';
  83. if (!empty($_POST['nazwisko']) AND $_POST['nazwisko']==2)
  84.  $wh2[] = ' nazwisko DESC';
  85.  
  86. //.....i tak na kazde pola
  87.  
  88. if (!empty($wh))
  89.  $where = ' WHERE '.implode(' AND ', $wh);
  90. if (!empty($wh2))
  91.  $where2 = implode(' , ', $wh2);
  92.  $query = "SELECT * FROM komsultanci".$where." ".$where2;
  93.  }
  94.  else $query = "SELECT * FROM komsultanci ORDER BY imie ASC";
  95.  
  96.  $result = mysql_query ($query);
  97. $intCount = mysql_num_rows($result);
  98. //wiersz w którym są kolejne strony -> start
  99. echo'<tr><td class="kom_cen" colspan="6">';
  100. if ($intCurrentPage <> 0)
  101.  {
  102. $poz =$_GET['poz'] - 1;
  103. echo'<a class="str" href="index.php?zak=2&amp;podzak=1&amp;poz='.$poz.'">Poprzednia</a>';
  104.  }
  105.  
  106. for($i = 0; $i<ceil($intCount/$intLimit); $i++)
  107. {
  108.  if ($intCurrentPage== $i)
  109. echo '['.($i+1).']';
  110.  else
  111.  echo '<a class="str" href="index.php?zak=2&amp;podzak=1&amp;poz='.$i.'">['.($i+1).']</a> ';
  112. }
  113. if ($intCurrentPage+1< ceil($intCount/$intLimit))
  114. {
  115. $poz = $intCurrentPage+1;
  116. echo'<a class="str" href="index.php?zak=2&amp;podzak=1&amp;poz='.$poz.'">Następna</a>';
  117. }
  118.  
  119.  echo'</td></tr>';
  120. //wiersz w którym są kolejne strony -> stop
  121. while($row = mysql_fetch_array($result))
  122. {
  123.  
  124. $i++;
  125.  $a= $i%2;
  126.  if ($a==0)
  127.  {
  128. echo'<tr>
  129. <td class="kom_11">'.$row['imie'].'</td>
  130. <td class="kom_12">'.$row['nazwisko'].'</td>
  131. <td class="kom_12">'.$row['nr_wlasny'].'</td>
  132. <td class="kom_12">'.$row['region'].'</td>
  133. <td class="kom_12">'.$row['miejscowosc'].'</td>
  134. <td class="kom_12">'.$row['nr_partnera'].'</td>
  135. </tr>';
  136.  }
  137. else
  138. {
  139. echo'<tr>
  140. <td class="kom_21">'.$row['imie'].'</td>
  141. <td class="kom_22">'.$row['nazwisko'].'</td>
  142. <td class="kom_22">'.$row['nr_wlasny'].'</td>
  143. <td class="kom_22">'.$row['region'].'</td>
  144. <td class="kom_22">'.$row['miejscowosc'].'</td>
  145. <td class="kom_22">'.$row['nr_partnera'].'</td>
  146. </tr>';
  147.  
  148. }
  149. }
  150. echo'<tr><td colspan="6"><input name="sort" type="submit" value="Sortuj" /></form></td></tr>';
  151.  echo'</table>';
  152.  
  153. ?>


mam takie cos i nie wiem co dalej
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.