Странициране - показва същите неща на различните страници

  • Автор Автор Foxy
  • Начална дата Начална дата

Foxy

Registered
Здравейте! Страницирането работи, но на различните страници не показва новите 5 полета, а показва миналите 4 и 1 следващо, а аз искам да показва следващите 5. Ето кода:
Код:
<?php

include "config.php";
$query = "SELECT COUNT(id) AS numrows FROM `statii`";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$broinastranica = '5';
$maxPage = ceil($numrows/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

$cur_page = $_GET['page'];
if(($cur_page + 5) > $maxPage)
      
      $do = $maxPage;
else

      $do = $cur_page + 5;
      
if(($cur_page - 5) <= 1)

      $ot = 1;

else

      $ot = $cur_page - 5;

for($page = $ot; $page <= $do; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= (($maxPage == 1)? '' : $page);
}
else
{

$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
}


}
if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"$self?page=$page\"> [<<] </a> ";

$parva = " <a href=\"$self?page=1\">[първа]</a> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?page=$page\"> [>>] </a> ";
$posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}
	$zaqvka = mysql_query("SELECT * FROM `statii` ORDER BY `id` DESC LIMIT $cur_page,$broinastranica");
	echo "<div style='width: 300px; border: 1px solid #000000; padding: 10px;'>";
while($row = mysql_fetch_assoc($zaqvka))
{
	echo "<tr><td><a href='statii.php?statiq=$row[id]'>$row[zaglavie]</a></td></tr><br />";
}
echo "</div>";

echo "
<center><div id='menubar'>$parva  $predishna  $nomeranastranici  $sledvashta  $posledna</div></center>";


?>

Имам и още 1 въпрос - как мога да забраня да се влиза в станици, в който няма нищо?
 
ето ти код, който показва първите предните 5 и следващите 5, първа и последна, предишна и следваща. трябва само да си го обработиш.

давам ти целия код, за да се ориентираш, кое какво е:

Код:
<?php	
include ("config.php");
$result77 = mysql_query("SELECT str FROM options", $db) or die ("<p>Грешка 2</p>");
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND cat='$cat'") or die ("<p>Грешка 3</p>");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total =  intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
  if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start			
		
		
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE secret=0 AND cat='$cat' ORDER BY id DESC LIMIT $start, $num",$db) or die ("<p>Няма въведени данни за тази категория!</p>");

if (!$result)
{
echo "<p>Въпроса, по който търсихте не може да бъде открит. Пишете на администратор</p>";
//exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result); 

do 
{

$r = $myrow["rating"]/$myrow["q_vote"];
$r = intval($r);

printf ("<table align='center' class='post'>
         
		 <tr>
         <td class='post_title'>
		 <p class='post_name'><a href='view_post.php?id=%s'><img class='mini' align='left' src='%s'></a>
		 <a href='view_post.php?id=%s' class='links' alt='%s'>%s</a></p>
		 <p class='post_adds'>Добавен на: %s</p>
		 <p class='post_adds'>Автор: %s</p></td>
         </tr>
         
		 <tr>
         <td><p>%s</p></td></tr>
		 <tr>
		 <td class='post_title'>
		 <p class='post_view'>Преглеждания: %s    Рейтинг: <img src='img/%s.gif' align='absmiddle'></p></td>
         </tr>
         
		 </table><br>",$myrow["id"],$myrow["mini_img"],$myrow["id"],$myrow["title"],$myrow["title"], $myrow["date"],$myrow["author"],$myrow["description"], $myrow["view"], $r);



}
while ($myrow = mysql_fetch_array($result));


// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=view_cat.php?cat='.$cat.'&page=1>Първа</a> <a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>Предишна</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page + 1) .'>Следваща</a> <a href=view_cat.php?cat='.$cat.'&page=' .$total. '>Последна</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> ';
if($page - 4 > 0) $page4left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> ';
if($page - 3 > 0) $page3left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> ';
if($page - 2 > 0) $page2left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> ';
if($page - 1 > 0) $page1left = '<a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> ';

if($page + 5 <= $total) $page5right = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню если страниц больше одной

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div align=\"center\" class=\"paging\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div><br>";
}

}
else
{
echo "<p>Информация по въпроса не може да бъде излвечена. Не съществува в базата данни.</p>";
}

?>
 
Ето ти код за странициране:

Код:
$max_count=$row['cnt'];
$limit=5; //Лимита
if((int)$_GET['page']>0){
$page=(int)$_GET['page']-1;
}
else
{
$page=0;
}
$max_pages=ceil($max_count/$limit);
echo $max_pages;
echo '<div id="pagination">';
for($i=0;$i<$max_pages;$i++)
{
if($i=$page)
{
echo ($i+1). ' | ';
}
else
{
echo '<a href="topic.php?id='.$cat_id.'$page='.($i+1).'">.($i+1).</a>';
}
}
if($page<($max_pages-1))
{
echo '<a href="topic.php?id='.$cat_id.'$page='.($page+2).'">'.($i+1).'</a>';
}
echo '<a href="topic.php?id='.$cat_id.'$page='.($page+2).'">Следваща страница�������� ��������</a>';
echo '</div>';
}

Надявам се да съм ти помогнал, промени кода според твоите нужди :wink:
 
Код:
<?php
include "conn.php";

$broinastranica = 5;
$pageNum = 1;
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $broinastranica;

$query = "SELECT COUNT(id) AS numrows FROM `statii`";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];


$maxPage = ceil($numrows/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}
else
{
$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
}
}

if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> ";

$parva = " <font color=orange><a href=\"$self?page=1\">[първа]</a></font> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <font color=orange><a href=\"$self?page=$page\"> [>] </a></font> ";

$posledna = " <font color=orange><a href=\"$self?page=$maxPage\">[последна]</a></font> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}
   $zaqvka = mysql_query("SELECT * FROM `statii` ORDER BY `id` DESC LIMIT $redove, $broinastranica");
   echo "<div style='width: 300px; border: 1px solid #000000; padding: 10px;'>";
while($row = mysql_fetch_assoc($zaqvka))
{
   echo "<tr><td><a href='statii.php?statiq=$row[id]'>$row[zaglavie]</a></td></tr><br />";
}
echo "</div>";

echo "
<center><div id='menubar'>$parva  $predishna  $nomeranastranici  $sledvashta  $posledna</div></center>";


?>

Така ?
 

Back
Горе