Проблем със странициране

galabin123

Registered
http://web-tourist.net/login/login/view.php?st=955

това е урока който използвам но има нещо което е гадно ако винаги ми показва страниците с 1 повече ако е 1 ще показва че има 2 ако са 2 показвза че има 3 не съм го пипал само го сложих и с други опитах и пак същото
 
Когато взимаш номера на страницата от $_GET трябва да извадиш 1!
$page = $_GET['page']-1;
:)
Причината е, че в скрипта ти изчислява от кой до кой елемент от базата данни да ти покаже по следният начин: умножава номерът на страницата със броят на елементи в страницата. И понеже резултатите започват от 0 в базата данни, елементът от който трябва да стартира изваждането при първата страница трябва да е 0.
Пример: В заявката има следният код: LIMIT число1, число2;
Число едно показва от кой елемент да започне изваждането и число2 показва колко елемента да извади. За да извади от първият до двадесетият елемент, заявката ще изглежда така: LIMIT 0, 20 и тнт.
Надявам си ме разбрал, но съм изненадан, че има проблем при теб, защото почти всички туристи използват този код :)
 
до някъде те разбрах но пак не мога ще ми го оправиш ли ето го кода

Код:
$pp = "1"; 
//колко резултата на страница 

$page=$_GET['page']; //присвояваме стойността на page 

if(!$_GET['page']) //ако не е взета page да върне 1-ца 
{ 
$page="1"; 
} 

$limit = ($pp*$page)-$pp; //определяме лимитирането 
$redove=mysql_query("SELECT * FROM komep"); 

$max=mysql_numrows($redove); //преброяваме редовете 
$total=ceil($max/$pp); //пресмятаме броя на страниците 
mysql_query("SET CHARACTER SET utf8");
$sql = "SELECT * FROM komep WHERE ep='$row[id]' ORDER BY time DESC LIMIT $limit,$pp";
$komentar = nl2br($komentar);
$result = mysql_query($sql) or die (mysql_error());
$time = $row['time'];
$i=0; 
while ($i < $num) { 

$data=mysql_result($result,$i,"data"); 

echo $data."<br>"; 

$i++; 
} 
while($com = mysql_fetch_assoc($result)) {
echo "<div style='width: 600px; overflow:hidden; background: #ababab;'>
Автор: $com[avtor]</div>
<div style=”word-wrap: break-word”><div style='width: 600px; overflow:hidden;'>
<p><strong>$com[komentar]<p></div></strong>";

}
if ($page > 1) { 
$prev = ($page - 1); 
echo "<a href=\"?page=$prev\"><font face=\"Trebuchet MS\">Предишна страница</font></a> "; 
} 
else echo "<font face=\"Trebuchet MS\">Предишна страница</font> "; 

if (!$page or ($page > $total)) { 
$page="1"; 
} 

if ($total < 10) { 
for($i=1 ; $i<=$total ; $i++) { 
if ( ($page)==$i ) { 
echo "<b>$i</b> "; 
} 
else { 
echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 
} 
} 
else { 
for($i=1 ; $i<=3 ; $i++) { 
if ( ($page)==$i ) { 
echo "<b>$i</b> "; 
} 
else { 
echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 
} 

if ($page <= 3) { 
if ($page == 3) echo "<a href=\"?page=4\">4</a> "; 
echo "... "; 
for ($i=$total-2; $i<=$total; $i++) 
echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 
if ($page == 5) $parva.= "<a href=\"?page=4\">4</a> "; 

if ( ($page == 4) or ($page == 5) ) { 
for ($i=$page; $i<=$page+1; $i++) { 
if ($page == $i) echo "<b>$i</b> "; 
else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 
echo "... "; 
for ($i=$total-2; $i<=$total; $i++) 
echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 

if ( ($page > 5) and ($page < ($total - 4)) ) { 
echo "... "; 
for ($i=$page-1; $i<=$page+1; $i++) { 
if ($page == $i) echo "<b>$i</b> "; 
else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 
echo "... "; 
for ($i=$total-2; $i<=$total; $i++) 
echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 

if ( $page > ($total - 5) ) { 
echo "... "; 
for ($i=$total-5; $i<=$total; $i++) { 
if ($page == $i) echo "<b>$i</b> "; 
else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
} 
} 
} 

if ($page < $total) { 
$next = ($page + 1); 
echo "<a href=\"?page=$next\"><font face=\"Trebuchet MS\">Следваща страница</font></a> "; 
} 
else echo "<font face=\"Trebuchet MS\">Следваща страница</font>";
 
F1r3Fl3x каза:
Не мога да ти помогна, до колкото виждам кода си е наред :lol:
:( пробвах още 2 от туриста същата работа опитах без дизайн да видя дали нее от дизайна и нее не става
 
Ето ти едно странициране, но само със Слеваща и Предишна страница:
Страницата е с име show.php.
Код:
<?php
		require_once("../connection.php");
		mysql_query("SET NAMES cp1251");
		
		$page=(int)$_GET['page'];
		if($page == 0 || $page == NULL || $page < 0) {
		header("Location: show.php?page=1");
		}
		$pp='10';
		$start=($page * $pp) - $pp;
		$all=mysql_query("SELECT * FROM `news`") or die(mysql_error());
		$pages=count($all);
		$tot=ceil($pages / $pp);
		$sql=mysql_query("SELECT * FROM `table` ORDER BY `id` ASC LIMIT $start,$pp") or die(mysql_error());
		
		while($r=mysql_fetch_array($sql)) {
		echo "<tr align='center'>";
		echo "<td>".$r['поле']."</td>";
		echo "<td>".$r['поле']."</td>";
		echo "<td>".$r['поле']."</td>";
		echo "<td>".$r['поле']."</td>";
		echo "<td>".$r['поле']."</td>";
		echo "</tr>";
		}
		
		$next=$page + '1';
		$prev=$page - '1';
		
		if($page != $tot) {
		echo "<a href=\"show.php?page=".$next."\">Следваща</a>";
		}
		
		echo "   ";
		
		if($page != 1) {
		echo "<a href=\"show.php?page=".$prev."\">Предишна</a>"; 
		}

		
?>
 
оправих се но направих само за предишна и следваща може ли някой само да ми направи да се показват страниците така 1,2,3,4,5,6.....15,16,17,18

Код:
$page = (int)$_GET['page'];
if ($page == 0 || $page == NULL || $page < 0 ) {
$page = 1;
}
$pp = 2;
$start = ($page*$pp) - $pp;
$query = mysql_query("SELECT * FROM komep WHERE ep='$row[id]' ORDER BY time DESC")  or die (mysql_error());
$broi = mysql_num_rows($query);
$total = ceil($broi/$pp);
$sql = "SELECT * FROM komep WHERE ep='$row[id]' ORDER BY time DESC LIMIT $start,$pp";
$komentar = nl2br($komentar);
$result = mysql_query($sql) or die (mysql_error());
$time = $row['time'];
while($com = mysql_fetch_assoc($result)) {
echo "<div style='width: 600px; overflow:hidden; background: #ababab;'>
Автор: $com[avtor]</div>
<div style=”word-wrap: break-word”><div style='width: 600px; overflow:hidden;'>
<p><strong>$com[komentar]<p></div></strong>";
}
$prev = $page - 1;
$next = $page + 1;

if ($page == 1) 
{
print "Предишна";
}
else 
{
print "<a href='index.php?pages=readep&id=$row[id]&page=$prev'>Предишна  </a>";
}

if ($page >= $total) 
{
print "  Следваща";
}
else 
{
print "<a href='index.php?pages=readep&id=$row[id]&page=$next'>  Следваща</a>";
}
print "<br/>Страница $page от $total";
 

Back
Горе