Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Stronicowanie - rekord...
Forum PHP.pl > Forum > Przedszkole
Sasuke Uchiha
Witam, mam problem ze stronicowaniem a konkretnie w bazie posiadam 11 rekordów ale niestety gdy ustawię sobie przykładowo porcję na 9 rekordów to wyświetla mi tylko 9 rekordów i mam jedną stronę a gdy ustawię porcję rekordów równą 5 to wtedy mam 2 strony po 5 rekordów czyli 10 łącznie no i brakuje tak czy siak 1 rekordu ;/ Mam pytanie drodzy koledzy gdzie ja tutaj popełniam błąd questionmark.gif

  1. <?php
  2. define('limit_video', 9);
  3.  
  4. $video = "SELECT SQL_CALC_FOUND_ROWS * FROM video ORDER BY id DESC LIMIT ". mysql_escape_string((int)$_GET['porcja'] *limit_video).",".limit_video;
  5.  
  6. $video_query = mysql_query($video);
  7. <table cellspacing="0" cellpadding="0">
  8. <tr><td><img src="img/bg_site_video_1.png"></td></tr>
  9. <tr><td align="center" valign="top" style="padding: 15px;width: 504px; height: 200px; background-image: url(img/bg_site_repeat_2.png);">
  10. ';
  11. while($video_row = mysql_fetch_array($video_query))
  12. {
  13. echo '<div style="margin-top: 5px; margin-right: 3px;width: 155px;float: left;">
  14. <div><font style="color: #ffcf1a; font-family: Arial; font-size: 12px;"><b>'.$video_row['title'].'</b></font></div>
  15. <div style="margin-top: 5px; margin-bottom: 5px;width: 155px; height: 105px; background-image: url(img/bg_youtube_2.png); background-repeat: no-repeat;"><a href="http://'.$video_row['youtube'].'"><img border="0" style="margin-top: 9.5px;" src="img/'.$video_row['avatar'].'"></a></div>
  16. <div><font style="color: #8a8a8a; font-family: Arial; font-size: 11px;">Dodano: '.$video_row['date'].'</font><br><font style="color: #8a8a8a; font-family: Arial; font-size: 11px;">'.$video_row['category'].'</font></div>
  17. <div><font style="color: #ffffff; font-family: Arial; font-size: 12px;">'.$video_row['info'].'</font></div>
  18. </div>';
  19. }
  20.  
  21.  
  22.  
  23.  
  24.  
  25. echo'</td></tr>
  26.  
  27. <tr><td align="top" style="width: 504px; height: 27px; background-image: url(img/bg_site_repeat_2.png);">';
  28.  
  29. //Pobieramy ilosc danych w bazie
  30. $video = "SELECT FOUND_ROWS() as video";
  31. $video_query = mysql_query($video);
  32.  
  33.  
  34.  
  35. list($iloscWpisow) = mysql_fetch_row($video_query);
  36.  
  37.  
  38. echo '<center>';
  39.  
  40. if($_GET['porcja']>0){
  41.  
  42.  
  43. echo '<div><a href="?site=media&&porcja='.($_GET['porcja']-1).'"><img border="0" src="images/left_cursor.png"></a> ';
  44. }
  45.  
  46. for($i = 0;$i<floor($iloscWpisow/limit_video);$i++){
  47. echo '<a href="?site=media&&porcja='.($i).'">[ '.($i+1).' ]</a> ';
  48. }
  49.  
  50.  
  51. if($_GET['porcja']<floor($iloscWpisow/limit_video)-1){
  52.  
  53. echo ' <a href="?site=media&&porcja='.($_GET['porcja']+1).'"><img border="0" src="images/right_cursor.png"></a></div>';
  54. }
  55.  
  56. echo '</center>';
  57.  
  58. echo '</td></tr>
  59.  
  60. <tr><td><img src="img/bg_site_bottom_3.png"></td></tr>
  61. </table>
  62. ';
  63.  
  64. ?>


acha i jak ustawię porcję = 1 to wtedy mam 11 stron i jest wtedy te 11 rekordów lol :/
kpt_lucek
Ja jeżeli chodzi o stronicowanie operowałem na GET'ach.

Mianowicie: www.mojastrona.pl/index.php?jakis_get=a&page=x
Samo zapytanie budowałem tak:
  1. if(!empty($_GET[page]) && is_numeric($_GET[page]))
  2. {
  3. $limit = " LIMIT ".(($_GET[page]-1)*$ilosc_rekordow).", ".$_GET[page]*$ilosc_rekordow;
  4. }else{
  5. $limit = " LIMIT 0, ".(1*$ilosc_rekordow);
  6. }
  7.  
  8. $sql = mysql_query("SELECT `costam` FROM `gdzies` WHERE `cos` = 'innecos'".$limit);


Pozdrawiam
k_@_m_i_l
Zamień floor na ceil i będzie dobrze.
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.