Problem z pobieraniem rekordów z bazy danych

Forum przeznaczone dla MySql - bazy danych.
Rumtumtum
Nowicjusz
Posty: 2
Dołączył(a): piątek, 26 lutego 2016, 23:24

Problem z pobieraniem rekordów z bazy danych

Post przez Rumtumtum »

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.

Code: 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>";
	
	
?>
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Problem z pobieraniem rekordów z bazy danych

Post przez Morfidon »

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 :)
Post Reply