Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Ошибка в постранмчной кода РНР, при выводе новостей
 
В чём не правильно написание кода, так как из 13 новостей на странице вывода всех их они выводятся понятно как десять последних, с 4- по 13 на первой странице, но после перехода на 2 постраничную отображается опять то же самое с 4-по 13, а правильно должно быть с 1- по 3.

Код данного скрипта:
$kolvo=10; //кол-во выводимых новостей на странице
$allnews=mysql_num_rows(mysql_query("SELECT id FROM tb_news"));$allsqls++; //общее кол-во новостей
$vsego=intval($allnews/$kolvo);
$nowpage=intval($_GET["pg"]);
if($nowpage=='') $nowpage=1;
if($nowpage-1>$vsego) $nowpage=$vsego;
if(!isset($_GET["pg"])) $nowpage=1;
$gg=$vsego*$kolvo;
if($gg<$allnews) { $vsego=$vsego+1; }
$pages=$vsego/$kolvo;
$pages1=floor($pages);
$pg1=$kolvo*($nowpage-1);
$pg2=$kolvo*$nowpage;
if($nowpage==$vsego) { $pg1=0; $pg2=$kolvo; }

if($pages>$pages1)
{
$pages=$pages1+1;
}

$sql="select * from tb_news order by id desc LIMIT $pg1,$pg2";

Ошибка находится в выделенном тексте кода, с применением переменной $pg2, в которой надо отобразить оставшиеся (3)новости. А знак (*) делает умножение количества на все.
Весьма буду признателен за все подсказки или советы.
 
Как-то так:
Код
$kolvo=10; //кол-во выводимых новостей на странице
$allnews=mysql_num_rows(mysql_query("SELECT id FROM tb_news"));$allsqls++; //общее кол-во новостей
$vsego=ceil($allnews/$kolvo);
if(!isset($_GET["pg"])||empty($_GET["pg"])||!is_numeric($_GET["pg"])) $nowpage=1;
else $nowpage=intval($_GET["pg"]);
if($nowpage>$vsego) $nowpage=$vsego;
$sql="select * from tb_news order by id desc LIMIT ".(($nowpage-1)*$kolvo). ', '.$kolvo; 
Страницы: 1
Читают тему