Problem z pobieraniem rekordów z bazy danych

Forum przeznaczone dla MySql - bazy danych.

Problem z pobieraniem rekordów z bazy danych

Postprzez Rumtumtum » wtorek, 1 listopada 2016, 20:23

Stworzyłem skrypt którego celem jest pobieranie zawartości 3 kolejnych rekordów z bazy danych. dla strony pierwszej wszystko działa poprawnie wyświetla mi rekordy od 0 do 3, natomiast gdy chce przejść do następnej strony skrypt powinien wczytać rekordy od 3 do 6. Problem polega na tym iż skrypt na następnej stronie wczytuje rekordy od 3 ale już się nie zatrzymuje na 6 tylko leci do samego końca tabeli. Proszę o radę jak mogę rozwiązać ten problem.
Kod: Zaznacz cały
<?php
   include("connect.php");
   
   $page_id = (int)$_GET['page'];
   $page = $page_id+1;

   $back_page = $page;
   $next_page = $page_id-1;
   
   //OBLICZANIE ZAWARTOSCI STRONY//
   
   if ($page_id == 0){
      $od = $page_id;
      //echo "od:".$od."<br>";
      $do = $od+3;
      //echo "do:".$do."<br>";
      
      $query = mysql_query("select * from article order by id desc limit $od , $do");
      while($rekord = mysql_fetch_array($query)){
         $naz  .= "<div class='box' style='margin-bottom:50px;'>tytuł: ".$rekord['title']."<br>data: ".$rekord['date']."<br><img style='width:50px; height:50px;' src='/test/images/".$rekord['photo'].".jpg'>"."<br>tresc artykułu: ".$rekord['contents']."</div>";
      }
      echo $naz;
   }
   else if ($page_id > 0){
      $od = $page_id * 3;
      //echo "od:".$od."<br>";
      $do = $od+3;
      //echo "do:".$do."<br>";
      
      $query = mysql_query("select * from article order by id desc limit $od , $do");
      while($rekord = mysql_fetch_array($query)){
         $naz  .= "<div class='box' style='margin-bottom:50px;'>tytuł: ".$rekord['title']."<br>data: ".$rekord['date']."<br><img style='width:50px; height:50px;' src='/test/images/".$rekord['photo'].".jpg'>"."<br>tresc artykułu: ".$rekord['contents']."</div>";
      }
      echo $naz;
      
   }
   else
      echo "taka strona nie istnieje!!";
   
   
   
   echo "<br><br><br>";
   
   
   
   //OBLICZENIA DO NAWIGACJI STRON//
   $query = mysql_query ("SELECT * FROM article");
   $rekord = mysql_num_rows($query);
   //echo "<br><br>ile aktualnie posiadamy postów: ".$rekord."<br>";
   
   $ilosc_stron = $rekord / 3;
   $wynik = ceil($ilosc_stron);
   
   
   //NAWIGACJA STRONY//
   if ($page == 1){
      echo "<a href='?page=$page'>starsze</a>";
   }
   else if ($page < $wynik){
      echo "<a href='?page=$back_page'>starsze </a>";
      echo "<a href='?page=$next_page'> nowsze</a>";
   }
   else
      echo "<a href='?page=$next_page'> nowsze</a>";
   
   
?>
Rumtumtum
Nowicjusz
 
Posty: 2
Dołączył(a): piątek, 26 lutego 2016, 23:24

Re: Problem z pobieraniem rekordów z bazy danych

Postprzez Morfidon » środa, 2 listopada 2016, 12:50

Musisz skorzystać z parametru OFFSET więcej tutaj:
http://www.w3schools.com/php/php_mysql_select_limit.asp

Ew. z limit, tylko że to nie działa tak jak Ty prawdopodobnie myślisz, że 'od', 'do' jakiejś wartości, to jest bardziej 'od', oraz następna wartość to 'ile'

Pozdrawiam :)
Morfidon
Administrator
Administrator
 
Posty: 1309
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48


Powrót do MySql

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość