X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ошибка в постраничной новостей на РНР
koctik_hb
koctik_hb
Topic Starter сообщение 9.9.2013, 19:25; Ответить: koctik_hb
Сообщение #1


Не правильное написание кода в нескольких строках (выделены мною), так как из 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)новости. А знак (*) делает умножение количества на все.
Весьма буду признателен за все подсказки или советы.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
сообщение 10.9.2013, 23:56; Ответить: Licoric
Сообщение #2


[PHP]// всего записей
$query_num = "SELECT id FROM ".$prefix."news";
$res_num = mysql_query($query_num) or die(mysql_error());
// всего записей
$num = mysql_num_rows($res_num);
// записей на страницу
$per_page = 5;
// количество страниц
$page = ceil($num / $per_page);
// текущаю страница
$current_page = preg_replace("/[^0-9]+/", "", $_GET['page']);
if (!$current_page) {$current_page = 1;}
// высчитываем limit
$limit = ($current_page - 1) * $per_page;
if ($limit < 0) {$limit = 0;}
// Запрос с учетом текущей страницы
$query = "SELECT * FROM ".$prefix."news order by `id` desc limit ".$limit.", ".$per_page;
$res = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($res))
{
$id = $row['id'];
// выводим новости/записи/прочее
}
// Выводим нумерацию
for ($i = 1; $i <= $page; $i++)
{
if ($current_page == $i)
{
echo $i." ";
}
else
{
echo "<a href=\"?page=".$i."\">".$i."</a> ";
}
}[/PHP]
Не говорю, что код идеален, но можешь сравнить. У меня везде всегда работает.
Формально - подставь свои данные и все заработает.
*мне хотелось бы помочь, но лень)))
Может при случае позже
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
сообщение 11.9.2013, 0:02; Ответить: Licoric
Сообщение #3


Суть:
делаем запрос для цифр (количество записей, страниц, прочее).
Формируем "окончание" запроса (лимит).
Инициализируем "текущую страницу"
Делаем запрос к базе по этим данным.
Выводим (в данном случае 5) новости.
Выводим постраничную навигацию (текущая страница - без ссылки, остальные - ссылки).
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Seravin
Seravin
сообщение 11.9.2013, 4:59; Ответить: Seravin
Сообщение #4


В чем смысл тянуть id'шники из таблицы, если они нигде не нужны?
[PHP]
$per_page = 5;
$res_num = mysql_query("SELECT ceil(count(id)/$per_page) FROM ".$prefix."news") or die(mysql_error());
$page = end(mysql_fetch_row($res_num));
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
сообщение 12.9.2013, 17:47; Ответить: Licoric
Сообщение #5


(Seravin @ 11.9.2013, 07:59) *
В чем смысл тянуть id'шники из таблицы, если они нигде не нужны?

Я не претендую на идеальный код)))

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Посоветуйте новостные CPA смарт-витрины новостей
10 Boymaster 2445 21.8.2023, 17:25
автор: Boymaster
Открытая тема (нет новых ответов) Нужен рерайт новостей с публикацией
1 FUTP 1124 25.6.2022, 17:55
автор: andrey_freelance
Открытая тема (нет новых ответов) Ищу рерайтера для написания новостей, инфо текстов ИТ тематики
2 jorjo22 3904 20.9.2021, 16:45
автор: artek
Открытая тема (нет новых ответов) Требуется рерайтер новостей на постоянку
2 новости в день, 5 дней в неделю
1 eduarddis 1401 18.5.2021, 14:14
автор: eduarddis
Открытая тема (нет новых ответов) Требуется рерайтер новостей
3 Вазелин 1610 24.1.2021, 12:12
автор: Вазелин


 



RSS Текстовая версия Сейчас: 25.4.2024, 15:45
Дизайн