Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php mysql]Stronicowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
qiun
Witam exclamation.gif!

Napisałem skrypt newsory lecz ni wiem jak dodać opcję aby wyniki na stronie mi sie stronicował np mam 26 wpisów do tabeli a na stronie wyświetlam 4 rekordy i teraz jak zrobić aby wyświetlały mi się strony[1] [2] ..[5][6] itd.

  1. <?php
  2.  
  3. mysql_connect (&#092;"127.0.0.1\", \"**\", \"**\") or
  4. die (&#092;"Nie można się połączyć z bazą MySql\");
  5. mysql_select_db (&#092;"cms\") or
  6. die (&#092;"Nie można się połączyć z bazą CMS\");
  7.  
  8. $wynik = mysql_query (&#092;"SELECT * FROM news WHERE ok =1 \". \"ORDER BY nr DESC LIMIT 0,4;\");
  9.  
  10. while ($rekord = mysql_fetch_array ($wynik))
  11.  
  12.  
  13. {
  14. echo (&#092;"<table align=\"center\" border=\"0\" width=\"250\">\");
  15. echo (&#092;"<tr>\");
  16. echo (&#092;" <td>\");
  17. echo &#092;"<p><b><a href=\"all.php?nr=\".$rekord[0].\"\">\";
  18. echo $rekord[2].&#092;"</a></b><br/>\".$rekord[3].\"<p>\";
  19. echo &#092;"<p align=right><i>\".$rekord[5].\",\" .$rekord[1].\"</i></p>\";
  20. echo (&#092;" </td>\");
  21. echo (&#092;"</tr>\");
  22. echo (&#092;"</table>\");
  23. }
  24.  
  25. ?>
crash
Ustaw LIMIT w zapytaniu na:
  1. <?php
  2. ... LIMIT '.($_GET['strona'] * 4).', 4
  3. ?>

Licza stron to ilość wszysktich newsów podzielona przez 4. Przez GET przekazujesz numer strony. I tyle.
qiun
hmm zrobiłem tak
  1. <?php
  2. $intLimit = 4; //ilość rekordów na stronie;
  3.  
  4. if( empty( $_GET['nr'] ) )
  5. {
  6. $intCurrentPage = 0;
  7. }
  8. else
  9. {
  10. $intCurrentPage = $_GET['nr'];
  11. }
  12. mysql_connect (&#092;"127.0.0.1\", \"**\", \"**\") or
  13. die (&#092;"Nie można się połączyć z bazą MySql\");
  14. mysql_select_db (&#092;"cms\") or
  15. die (&#092;"Nie można się połączyć z bazą CMS\");
  16.  
  17. $wynik = mysql_query (&#092;"SELECT * FROM news WHERE ok =1 \". \"ORDER BY nr DESC LIMIT \".($intCurrentPage*$intLimit).\",\".$intLimit);
  18.  
  19. while ($rekord = mysql_fetch_array ($wynik))
  20.  
  21.  
  22. {
  23. echo (&#092;"<table align=\"center\" border=\"0\" width=\"250\">\");
  24. echo (&#092;"<tr>\");
  25. echo (&#092;" <td>\");
  26. echo &#092;"<p><b><a href=\"all.php?nr=\".$rekord[0].\"\">\";
  27. echo $rekord[2].&#092;"</a></b><br/>\".$rekord[3].\"<p>\";
  28. echo &#092;"<p align=right><i>\".$rekord[5].\",\" .$rekord[1].\"</i></p>\";
  29. echo (&#092;" </td>\");
  30. echo (&#092;"</tr>\");
  31. echo (&#092;"</table>\");
  32. }
  33. {
  34. echo $arrRow[ 'nr' ].' - '.$arrRow[ 'text' ].'<br>';
  35. }
  36. echo '<br>';
  37. for($i = 0; $i<ceil($intCount/$intLimit); $i++)
  38. {
  39. echo ' <a href=\"index?nr='.$i.'\">['.($i+1).']</a> ';
  40. }
  41.  
  42.  
  43. mysql_close($resBaseHandle);//43 linia gdzie pojawia się błąd
  44.  
  45. ?>


Lecz pojawia mi się błąd przy odłaczeniu od bazy ....
crash
Pisz albo:
  1. <?php
  2. $resBaseHandle = mysql_connect (&#092;"127.0.0.1\", \"**\", \"**\");
  3. ...
  4. mysql_close($resBaseHandle);
  5. ?>

Albo (jeśli otwarte jest tylko 1 połączenie):
  1. <?php
  2. mysql_connect (&#092;"127.0.0.1\", \"**\", \"**\");
  3. ...
  4. ?>
qiun
Ok racja moja pomyłka to w takim razie możesz mi jeszcze powiedzieć czemu nie wyświetla mi podstron 1 2 3 4 jak jest więcej rekordów w bazie questionmark.gif
Vertical
  1. <?php
  2. for($i = 0; $i<ceil($intCount/$intLimit); $i++)
  3. {
  4.     echo (&#092;" <a href='index?nr=$i'>[($i+1)]</a> \");
  5. }
  6. ?>
P3A_MDF
Nie dzialal mi wasz przyklad. Zadzialalo jak zrobilem SELECT COUNT(*), super. Ale nierozymiem kilku rzeczy. Prosze popatrzyc do komentarzy.
Czy zrobilem to poprawnie?
  1. <?php
  2. $intLimit = 4;
  3.  
  4. if( empty( $_GET['nr'] ) )
  5. {
  6. $intCurrentPage = 0;
  7. }
  8. else
  9. {
  10. $intCurrentPage = $_GET['nr'];
  11. }
  12. // [1] co robi ten \"IF\" i czym jest \"nr\" ?
  13. $mysql_link = mysql_connect('localhost', '', '');
  14. mysql_select_db (&#092;"iwz_uk_db\", $mysql_link) or
  15. die (&#092;"Nie można się połączyć z bazą CMS\");
  16.  
  17. $cnt = mysql_result(mysql_query('SELECT COUNT(*) FROM `niusy1`', $mysql_link), 0, 0);
  18. // tutaj wyciagam calkowita ilosc rekrdow
  19. echo &#092;"Wszytkich: $cnt\";
  20. $intCount = $cnt;
  21.  
  22. $wynik = mysql_query (&#092;"SELECT * FROM niusy1 \". \"ORDER BY numerniusa DESC LIMIT \".($intCurrentPage*$intLimit).\",\".$intLimit) or die (mysql_error());
  23.  
  24. while ($rekord = mysql_fetch_array ($wynik))
  25. {
  26. echo (&#092;"<table align=\"center\" border=\"0\" width=\"250\">\");
  27. echo (&#092;"<tr>\");
  28. echo (&#092;" <td>\");
  29. echo &#092;"<p><b><a href=\"all.php?nr=\".$rekord[0].\"\">\";
  30. echo $rekord[2].&#092;"</a></b><br/>\".$rekord[3].\"<p>\";
  31. echo &#092;"<p align=right><i>\".$rekord[5].\",\" .$rekord[1].\", \".$rekord[6].\",\" .$rekord[7].\"</i></p>\";
  32. echo (&#092;" </td>\");
  33. echo (&#092;"</tr>\");
  34. echo (&#092;"</table>\");
  35. }
  36. $aktuwysw = $intCurrentPage +1;
  37. echo &#092;"<BR><div align=center> intCount: $intCount - intLimit: $intLimit - Aktualnie wyswietlana: $aktuwysw\";
  38. //{ 
  39. //  echo $arrRow['nr'].' - '.$arrRow['text'].'<br>';
  40. //}
  41. // [2] Po co jest to wyzej i co to \"arrRow\" ?
  42. echo '<br>';
  43. for($i = 0; $i<ceil($intCount/$intLimit); $i++)
  44. {
  45. echo ' <a href=\"por3.php?nr='.$i.'\">['.($i+1).']</a>';
  46. }
  47. echo '</div><br>';
  48. mysql_close($mysql_link);
  49.  
  50. ?>
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.