Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Stronicowanie - następna strona pusta
Forum PHP.pl > Forum > Przedszkole
MaryonD
Witam, proszę o sprawdzenie skryptu. Nie moge sobie dać rady z tym, żeby prawidłowo stronicowało mi znalezione rekordy.
Funkcja pokazuje mi wszystkie znalezione wartości z danych wierszy w jednej lini, i po kliknięciu na następną strone to ona jest pusta, a powinna wyświetlić dalsze rekordy.

  1. function pokaz() {
  2.  
  3. $error = array();
  4.  
  5. if (isset($_POST["przycisk"])) {
  6. if (empty($_POST["szukaj"])) {$error[1] = true;} else {
  7.  
  8. $ip="localhost";
  9. $login="root";
  10. $haslo="";
  11. $baza="mysql";
  12. $tabela="towary";
  13. $szukaj = mysql_escape_string($_POST["szukaj"]);
  14.  
  15. mysql_connect ($ip,$login,$haslo);
  16. mysql_query("SET NAMES 'utf8'");
  17.  
  18. $na_stronie = 1; //każda strona ma wyświetlać po jednym wyniku
  19. $wynik = mysql_query("SELECT COUNT(id) FROM $tabela WHERE pole1='$szukaj' OR pole2='$szukaj' OR pole3='$szukaj'");
  20. //sprawdzam ile razy występuje rekord z szukanym słowem w bazie w celu przeliczenia na wyświetlane strony.
  21. $a = mysql_fetch_array($wynik);
  22. $liczba_wpisow = $a[0];
  23. $liczba_stron = ceil($liczba_wpisow / $na_stronie); echo $liczba_stron.' --- ';
  24.  
  25. if (isset($_GET['strona'])) {
  26.  
  27. if ($_GET['strona'] < 1 || $_GET['strona'] > $liczba_stron) $strona = 1;
  28. else $strona = $_GET['strona'];
  29. }
  30.  
  31. else $strona = 1;
  32. $od = $na_stronie * ($strona - 1);
  33.  
  34. $zapytanie2 = mysql_query("select id from $tabela WHERE pole1='$szukaj' OR pole2='$szukaj' OR pole3='$szukaj'");
  35. //sprawdzam ID rekordów z których pola chcę wyświetlić
  36. while ($tablica = mysql_fetch_row($zapytanie2)) {
  37.  
  38. $wykonaj = mysql_query ("select * from $tabela WHERE id='$tablica[0]' LIMIT $od , $na_stronie");
  39. $show = mysql_fetch_array($wykonaj);
  40.  
  41. echo($show['pole1'].' ');
  42. echo($show['pole2'].' ');
  43. echo($show['pole3'].' ');
  44.  
  45. }
  46. if ($liczba_wpisow > $na_stronie) {
  47.  
  48. $poprzednia = $strona - 1;
  49. $nastepna = $strona + 1;
  50.  
  51. if ($poprzednia > 0) {
  52. echo '<a id="POPRZEDNIA" href="test.php?strona='.$poprzednia.'">poprzednia strona</a>';
  53. }
  54.  
  55. if ($nastepna <= $liczba_stron) {
  56. echo '<a id="NASTEPNA" href="test.php?strona='.$nastepna.'">następna strona</a>';
  57. }
  58.  
  59. }
  60. }
  61. }


Z góry dziękuje za pomoc!
nospor
Do zapytania zapodajesz dane z formularza. Klikając na następną stronę, tych danych już nie ma panie kolego.
Musisz te dane przekazać również na następną stronę. Możesz to zrobić przez sesję, ale przez url. Obie metody opisałem tutaj:
http://nospor.pl/formularz-i-stronicowanie...anie-stanu.html
MaryonD
Ok, ale ten formularz i tak wyświetla mi wszystkie rekordy na raz na pierwszej stronie, jeden po drugim.
Nie "porcjuje" na poszczególne podstrony

JEszcze jedno pytanie:

Chcąc wykorzytsać sesje to czy wszystko tzn.
  1.  
  2. $_SESSION['form'] = array(
  3. 'szukaj' => $_POST['szukaj'],
  4. );
  5.  
  6. $formData = array(
  7. 'szukaj' => !isset($_SESSION['form']) ? null : $_SESSION['form']['szukaj'],
  8. );
  9.  
  10. echo $formData['szukaj'];

Definiuje w obrębie moje funkcji czy poza?
nospor
ad1) Jaki formularz? Twój oryginalny?
ad2) Definiujesz tam, gdzie z tego korzystasz. Jak korzystasz w funkcji to moze byc w funkcji
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.