Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] stronicowanie wyników wyszukiwania
Forum PHP.pl > Forum > Przedszkole
kononowicz
juz się męczyłem jakis czas temu ale nie mogłem sobie z tym poradzic...

mam wyszukiwarke towarów z bazy mysql i chciałbym zeby wyniki były stronicowane... podobno trzeba jakoś z sesją się pobawić, zeby przekazac kryteria wyszukiwania w zmiennych sesyjnych.

gdy np. uzyje stronicowania nospora, ktore jest na tym forum w dziale klasy ... to mi wyswietla tylko pierwsza strone a jak chce przejsc na inna podstrone to mi nie działa przejscie...
help
JaRoPHP
Bardzo obszerny opis problemu z Twojej strony, spowoduje na pewno masę odpowiedzi...
Zastanów się, czy mając informacje udzielone przez Ciebie, użytkownicy będą mogli wywnioskować, dlaczego nie działa...

O stronicowaniu było na forum wiele, więc prawdopodobnie przeszukanie tematów wystarczy, aby rozwiązać problem.
kononowicz
Cytat(JaRoPHP @ 14.03.2007, 19:43:38 ) *
Bardzo obszerny opis problemu z Twojej strony, spowoduje na pewno masę odpowiedzi...
Zastanów się, czy mając informacje udzielone przez Ciebie, użytkownicy będą mogli wywnioskować, dlaczego nie działa...

O stronicowaniu było na forum wiele, więc prawdopodobnie przeszukanie tematów wystarczy, aby rozwiązać problem.


a jak wy rozwiazaliscie problem stronicowania wyników wyszukiwana (kryteria wyszukiwania z poziomu formularza) questionmark.gif bo po prostu nie wiem jak sie za to zabrac

próbowalem przypisac kazdą zmienna przekazywaną z formularza do $_SESSION ale nie przyniosło efektów...
JaRoPHP
Cytat(kononowicz @ 14.03.2007, 19:54:38 ) *
a jak wy rozwiazaliscie problem stronicowania wyników wyszukiwana (kryteria wyszukiwania z poziomu formularza) questionmark.gif bo po prostu nie wiem jak sie za to zabrac
A szukałeś na forum?

Wykorzystując składnię zapytania SQL: SELECT - jest tam klauzula LIMIT, która określa, ile rekordów i od którego, ma zostać pobrana z bazy.
Wielkości te zazwyczaj przekazuję się GETem...
kononowicz
Cytat(JaRoPHP @ 14.03.2007, 20:06:14 ) *
A szukałeś na forum?

Wykorzystując składnię zapytania SQL: SELECT - jest tam klauzula LIMIT, która określa, ile rekordów i od którego, ma zostać pobrana z bazy.
Wielkości te zazwyczaj przekazuję się GETem...


ja wiem jak sie stronicuje ale jak przechodze do innej podstrony to tracę submita z form'a, czyli traci mi kryteria według ktorych ma wyswietlac wyniki ...

jakbyco to daje moje wypociny:
  1. <?php
  2. require "connection.php";
  3. connection();
  4. print'<img src="images/szukaj.jpg" alt="" />
  5. <form action="index.php?view=asortyment" method="post" id="szukaj">
  6. <br/>
  7. <fieldset>
  8. <legend>dane podstawowe</legend>
  9. <p>
  10. <label for="towary">nazwa towaru:</label>
  11. <input type="text" name="towary" id="towary" value="" class="tekst" />
  12. </p>
  13. <p>
  14. <label for="nr_kat">numer katalogowy:</label>
  15. <input type="text" name="nr_kat" id="nr_kat" value="" class="tekst" />
  16. </p>
  17. <p>
  18. <label for="ID_DZIALY">wybierz dział:</label>';
  19. echo "<select name='ID_DZIALY' id='ID_DZIALY' class='select'>";
  20. $zapytanie = 'SELECT * FROM `dzialy` ';
  21. $wynik = @mysql_query($zapytanie);
  22. print '<option value="">wszystkie</option>';
  23. while($select=@mysql_fetch_array($wynik))
  24. {
  25. echo '<option value="'.$select['ID'].'"> '.$select['DZIALY'].' </option>';
  26. }
  27. echo "</select>";
  28. print '</p>
  29. </fieldset>
  30. <br />
  31. <fieldset>
  32. <legend>zakres ceny</legend>
  33. <p>
  34. <label for="cena_od">od:</label>
  35. <input type="text" name="cena_od" id="cena_od" value="" class="tekst" />
  36. </p>
  37. <p>
  38. <label for="cena_do">do:</label>
  39. <input type="text" name="cena_do" id="cena_do" value="" class="tekst" />
  40. </p>
  41. </fieldset>
  42. <p>
  43. <input type="submit" name="szukaj" value="szukaj" class="przycisk" />
  44. </p></form><br />';
  45.  
  46. if (!empty($_POST['szukaj']))
  47. {
  48. $_SESSION['szukaj'] = $_POST['szukaj'];
  49. $_SESSION['szukaj'] = $_POST['szukaj'];
  50. $_SESSION['towary'] = $_POST['towary'];
  51. $_SESSION['nr_kat'] = $_POST['nr_kat'];
  52. $_SESSION['cena_od'] = $_POST['cena_od'];
  53. $_SESSION['cena_do'] = $_POST['cena_do'];
  54. $_SESSION['id_dzialy'] = $_POST['ID_DZIALY'];
  55. /*$cena_od = str_replace(',' , '.' , $cena_od);
  56. $cena_do = str_replace(',' , '.' , $cena_do);*/
  57. $wh = array();
  58.  if (!empty($_SESSION['cena_od']))
  59.  $wh[] = 'CENA >= '.$_SESSION['cena_od'];
  60.  
  61.  if (!empty($_SESSION['cena_do']))
  62.  $wh[] = 'CENA <= '.$_SESSION['cena_do'];
  63.  
  64.  if (!empty($_SESSION['nr_kat']))
  65. $wh[] = 'NR_KAT LIKE '.$_SESSION['nr_kat'];
  66.  
  67.  if (!empty($_SESSION['towary']))
  68. $wh[] = 'TOWARY LIKE "%'.$_SESSION['towary'].'%" ';
  69.  
  70.  if (!empty($_SESSION['id_dzialy']))
  71. $wh[] = 'ID_DZIALY = '.$_SESSION['id_dzialy'];
  72.  
  73.  if (!empty($wh)){
  74. $_SESSION['wh'] = $wh;
  75. $_SESSION['where'] = ' where '.implode(' and ', $_SESSION['wh']);
  76. }
  77.  else
  78. $_SESSION['where'] = '';
  79.  
  80. //stronicowanie
  81. require_once('Pager.class.php');
  82. $sql = 'select count(*) from `towary` '.$_SESSION['where'];
  83. $result = mysql_query($sql);
  84. $row = mysql_fetch_array($result);
  85. $recordsCount = $row[0];//pobranie liczby rekordów
  86. $pager = new Pager('idPagera','index.php?view=asortyment');
  87. $pager->SetTotalRecords($recordsCount);
  88. $pag = $pager->Render(true);
  89. $start = $pager->GetIndexRecordStart();
  90. $end = $pager->GetIndexRecordEnd();
  91. //zapytanie z uwzglenieniem stronicowania
  92. $zapytanie = 'SELECT * FROM `towary` , `dzialy` '.$_SESSION['where'].' and `towary`.`ID_DZIALY`=`dzialy`.`ID` limit '.$start.','.($end - $start + 1);
  93. $wynik = @mysql_query($zapytanie);
  94. $ilosc_wierszy = @mysql_num_rows($wynik);
  95. if($ilosc_wierszy != '0') {
  96. echo "<table class='tabela' width='99%'>";
  97. echo "<tr class='naglowek'>";
  98. echo "<th> towary </th>";
  99. echo "<th> nr. kat. </th>";
  100. echo "<th> dział </th>";
  101. echo "<th> cena[zł] </th>";
  102. echo "</tr>";
  103.  $a = 1;
  104. while($wiersz = @mysql_fetch_array($wynik)) {
  105. if( $a % 2 == 0 )
  106. $class = 'jasna';
  107. else
  108. $class = 'ciemna';
  109. echo '<tr class=" '.$class.' ">';
  110. echo "<td>".$wiersz['TOWARY']."</td>";
  111. echo "<td>".$wiersz['NR_KAT']."</td>";
  112. echo "<td>".$wiersz['DZIALY']."</td>";
  113. echo "<td>".$wiersz['CENA']."</td>";
  114. echo "</tr>";
  115. $a++;
  116. }
  117.  echo "<tr class='naglowek'>";
  118. echo "<td colspan='4'> Znaleziono: $ilosc_wierszy </td>";
  119. echo "</tr>";
  120. echo "</table>";
  121. echo $pag;
  122. }
  123. else
  124. echo '<br /><div class="walidacja">Brak towarów spełniających kryteria</div>';
  125. }
  126. $towary = $_POST['$towary'] = !empty($_SESSION['towary']) ? $_SESSION['towary'] : null;
  127. $nr_kat = $_POST['$nr_kat'] = !empty($_SESSION['nr_kat']) ? $_SESSION['nr_kat'] : null;
  128. $cena_od = $_POST['$cena_od'] = !empty($_SESSION['cena_od']) ? $_SESSION['cena_od'] : null;
  129. $cena_do = $_POST['$cena_do'] = !empty($_SESSION['cena_do']) ? $_SESSION['cena_do'] : null;
  130. $id_dzialy = $_POST['$id_dzialy'] = !empty($_SESSION['id_dzialy']) ? $_SESSION['id_dzialy'] : null;
  131. $towary = $_POST['$towary'] = !empty($_SESSION['towary']) ? $_SESSION['towary'] : null;
  132. $where = $_POST['$where'] = !empty($_SESSION['where']) ? $_SESSION['where'] : null;
  133. ?>
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.