Вернуться   SEO форум - оптимизация и продвижение сайтов > Web разработки > Программирование

Важная информация
Программирование - PHP, MySQL, JavaScript, CSS, HTML верстка и т.д.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 09.09.2013, 18:26   #1
 
Аватар для koctik
 
Сообщений: 5
FR (активность): 0

Доп. информация
По умолчанию Автор темы Ошибка в постраничном выводе новостей на РНР

Не правильное написание кода в нескольких строках (выделены мною), так как из 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)новости. А знак (*) делает умножение количества на все.
Весьма буду признателен за все подсказки или советы.
koctik вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 20.12.2013, 14:03   #2
 
Аватар для Unick
 
Сообщений: 711
FR (активность): 37,335

Доп. информация
По умолчанию

Цитата:
Сообщение от koctik Посмотреть сообщение
Не правильное написание кода в нескольких строках (выделены мною), так как из 13 новостей на странице вывода всех их они выводятся понятно как десять последних, с 4- по 13 на первой странице, но после перехода на 2 постраничную отображается опять то же самое с 4-по 13, а правильно должно быть с 1- по 3.
что?

ух... ну если я правльно понял, вы не понимаете как работает LIMIT
первое значение лимита - смещение, второе значение лимита - сколько брать значений.
Иными словами LIMIT 10,15 выведет вам с 10 по 25 новости. Если вы выводите одинаковое кол-во новостей на странице, то второе значение останется неизменяемым.


andreisoroka.com
Unick вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 29.12.2013, 11:19   #3
 
Аватар для skyly
 
Сообщений: 1
FR (активность): 59

Доп. информация
По умолчанию wwwqr

$vsego=intval($allnews/$kolvo);
$nowpage=intval($_GET["pg"])
skyly вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 10.04.2014, 14:21   #4
 
Аватар для bazan
 
Сообщений: 150
FR (активность): 3,879

Доп. информация
Хорошо

Я бы сделал вот так примерно:
<?
if(isset($_GET['pg'])){$str=$_GET['pg'];}else{$str=1;}
$kolichestvo=10;//10 - количество нужных для вывода строк
$ot=($str-1)*$kolichestvo;
$vc="SELECT * FROM tb_news LIMIT $ot,$kolichestvo";//Желательно добавить ORDER BY по дате или ID, что бы сначала выводились последние записи
[email protected]_query($vc);
while($row = @mysql_fetch_assoc($fd)){//и просто перебираем циклом
echo $row['news']."<br>";//НАПРИМЕР
}
?>
ap0stal: сообщение полезно


Есть кнопка спасибо
bazan вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Ответ

Метки
php

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции
Внимание!
Этой теме более 3005 дней. Вы можете оставить сообщение здесь. Но, обращаем внимание. Возможно, рациональней создать новую тему (найти свежее обсуждение)?


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[ Вопрос ] На каком интернет кошельке сейчас берется наименьшая комиссия при выводе средств? sof Электронные деньги 1 03.09.2013 13:52
О выводе WM в Украине. Chemodan Электронные деньги 17 31.01.2012 15:13
404 ошибка ELITTRANSFER Индексация сайта 3 08.07.2011 14:19
Ошибка 404 Aymara Индексация сайта 24 18.01.2011 13:58
Ошибка Турист О работе SEO Cafe 2 28.02.2008 07:31

Текущее время: 20:06. Часовой пояс GMT +3.