Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyniki zapytania SQL podzielone na strony
oximus
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Witam,
mam dosyć sporo danych pobranych z bazy w dwóch słupkach.
Jest jakiś fajny sposób, by przeglądać je tak jak wyniki wyszukiwania google?
Czyli następna strona, poprzednia strona na przykład po 5 wyników na stronkę?
Pozdrawiam.


--------------------
A T A R I
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
sobstel
post
Post #2





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


wpisz w googlach albo w wyszukiwarce na forum "stronnicowanie", na pewno znajdziej wiele ciekawych rzeczy na ten temat.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
militis
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 17.08.2004
Skąd: Olsztyn

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


wszystko co ci potrzebne to:

-SQL: LIMIT x,y
-dynamiczne generowanie zapytan
-dobre checi
-google


--------------------
Artur Wasilewski
Go to the top of the page
+Quote Post
oximus
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Dzięki już mam, nie wiedziałem, że to się zwie stronicowanie.

Może mi ktoś powiedzieć, jak w następnej stronie wyniku zapamiętać dane z formularza bo się gubią i następna strona nie pokazuje już wyniku.

  1. <?php
  2.  
  3. echo'<form method=\"GET\">';
  4. echo &#092;"Wprowadź datę 'OD'/ Input date 'FROM' \";
  5. echo&#092;"<INPUT TYPE=text NAME=data_all_errors_rok SIZE=4 VALUE=$rok maxlength=4>\";
  6. echo'-';
  7. echo&#092;"<INPUT TYPE=text NAME=data_all_errors_mc SIZE=2 VALUE=$mc maxlength=2>\";
  8. echo'-';
  9. echo&#092;"<INPUT TYPE=text NAME=data_all_errors_dzien SIZE=2 VALUE=$dzien2 maxlength=2>\";
  10. echo&#092;" \";
  11. echo&#092;"<INPUT TYPE=text NAME=data_all_errors_godz SIZE=2 VALUE=00 maxlength=2>\";
  12. echo':';
  13. echo&#092;"<INPUT TYPE=text NAME=data_all_errors_min SIZE=2 VALUE=00 maxlength=2>\";
  14.  
  15.  
  16. echo'<BR>';
  17. echo'<BR>';
  18. echo &#092;"Wprowadź datę 'DO'/ Input date 'TO' \";
  19. echo&#092;"<INPUT TYPE=text NAME=data_all_errors_rok_koniec SIZE=4 VALUE=$rok maxlength=
  20. >\";
  21. echo'-';
  22. echo\"<INPUT TYPE=text NAME=data_all_errors_mc_koniec SIZE=2 VALUE=$mc maxlength=2>\";
  23. echo'-';
  24. echo\"<INPUT TYPE=text NAME=data_all_errors_dzien_koniec SIZE=2 VALUE=$dzien maxlen
  25. th=2>\";
  26. echo\" \";
  27. echo\"<INPUT TYPE=text NAME=data_all_errors_godz_koniec SIZE=2 VALUE=00 maxlength=2>\";
  28. echo':';
  29. echo\"<INPUT TYPE=text NAME=data_all_errors_min_koniec SIZE=2 VALUE=00 maxlength=2>\";
  30.  
  31. echo\"<INPUT TYPE=hidden NAME=lista1 VALUE=$lista1>\";
  32. ?>


.
.
.
.
  1. <?php
  2. $search_all_errors=$_GET['search_all_errors'];
  3.  
  4. $query=&#092;"SELECT Whenl, Text FROM Events WHERE Crossing_Id='$lista1' AND Whenl>'($data_all_errors_rok-$data_all_errors_mc-$data_all_errors_dzien $data_all_errors_godz:$data_all_errors_min)' AND Whenl<'($data_all_errors_rok_koniec-$data_all_errors_mc_koniec-$data_all_errors_dzien_koniec $data_all_errors_godz_koniec:$data_all_errors_min_
    koniec)' ORDER BY Whenl DESC\";
  5.  
  6. $result=mysql_query($query) or die (mysql_error());
  7. $rekordy=mysql_num_rows($result);
  8. if ($rekordy==0){
  9. echo'<center><table width=80% border=0><tr><td align=\"center\">';
  10. echo'<b><Font color=\"#FF6600\"><Font size=\"4\">';
  11. echo &#092;"Brak danych / No data\";
  12. echo'</td></tr></table><br><br></font></font></b>';
  13. }
  14.  
  15. $max_poz = 10;
  16.  
  17. echo &#092;"<p align=center>\";
  18.  
  19. // jeśli wchodzimy bez parametru $page pierwsza strona
  20. // ustawia się jako pierwsza i pętla startuje od cyfry 0
  21.  
  22. If ($page==&#092;"\")
  23.  {
  24. $page=1;
  25. $start=0;
  26.  }
  27.  
  28. else
  29.  
  30. // jeśli wchodzimy z parametrem pierwsza strona
  31. // ustawia się z podanego parametru $page i pętla startuje od parametru $page
  32.  
  33.  {
  34. $start=$page*$max_poz;
  35. $start=$start-$max_poz;
  36.  }
  37.  
  38. $stron = ceil ($rekordy/$max_poz);  // instrukcja ceil zaokrągla ułamki w górę do pełnej liczby
  39.  
  40. // wykonujemy pętelki z podziałem na odnośniki do poszczególnych stron
  41.  
  42. If ($page>1)
  43.  {
  44. $strona=$page-1;
  45. echo &#092;"<a href='pobor_zdarzen.php?page=$strona&search_all_errors=$search_all_errors'>poprzednie</a> &nbsp; \";
  46.  }
  47.  
  48. For ($index=1;
  49.  $index <= $stron;
  50.  $index++)
  51.  {
  52. If (($page==$index) and ($stron!=1))
  53.  {
  54. echo&#092;"<font color=red><b>$index</b></font> | \";
  55. $next=$page+1;
  56.  }
  57. elseif ($stron!=1)
  58.  echo&#092;" <b><a href='pobor_zdarzen.php?page=$index&search_all_errors=$search_all_errors'>$index</a></b> | \";
  59.  
  60. If (($page>0) and ($index==$stron) and ($page<$stron))
  61.  echo &#092;" &nbsp; <a href='pobor_zdarzen.php?page=$next&search_all_errors=$search_all_errors'>następne</a>\";
  62.  }
  63.  
  64. // pobierasz sobie z bazy dane w zakresie oznaczonym $start, $max_poz (czyli z aktualnej strony na której jesteś)
  65.  
  66. $zapytanie=&#092;"SELECT Whenl, Text FROM Events WHERE Crossing_Id='$lista1' AND Whenl>'($data_all_errors_rok-$data_all_errors_mc-$data_all_errors_dzien $data_all_errors_godz:$data_all_errors_min)' AND Whenl<'($data_all_errors_rok_koniec-$data_all_errors_mc_koniec-$data_all_errors_dzien_koniec $data_all_errors_godz_koniec:$data_all_errors_min_
    koniec)' ORDER BY Whenl DESC LIMIT $start, $max_poz\";
  67.  $result = mysql_query($zapytanie);
  68.  
  69. while(list($Whenl, $Text)=mysql_fetch_row($result)){.....
  70. ?>


--------------------
A T A R I
Go to the top of the page
+Quote Post
sobstel
post
Post #5





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


mozesz umiescic w adresie i pobierac za pomoca metody get. tak najczesciej jest to rozwiazane np. na google tez (podejrzyj jakie sa linki)


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
militis
post
Post #6





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 17.08.2004
Skąd: Olsztyn

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


cookie/sesja/get/input type=hidden

Wybierz sobie któreś.


--------------------
Artur Wasilewski
Go to the top of the page
+Quote Post
oximus
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.04.2005
Skąd: Tychy

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


Mam teraz taki problem, że w wyniku zapytania dostaję ponad 1000 stron, po 10 wyników na kazdą. Od 1 do 1000 to sporo miejsca na stronie a wyswietlaja sie wszystkie wyniki.
Da sie w jakiś prosty sposób przerobić powyższy kod na taki, żeby wyświetlał np takie coś:

1,2,3,4,5,6,7,8,9,10,.... 11-50,50-100, itd?


--------------------
A T A R I
Go to the top of the page
+Quote Post
a1EL
post
Post #8





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 29.05.2004
Skąd: Kraków

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


Ja znalazlem tutaj niewiem czy dziala http://forum.php.pl/index.php?showtopic=27...l=stronicowanie
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 00:40