Показать сообщение отдельно
  #1 (permalink)  
Старый 06.02.2014, 12:34
Новичок на форуме
Отправить личное сообщение для malltaf Посмотреть профиль Найти все сообщения от malltaf
 
Регистрация: 15.01.2014
Сообщений: 8

Постраничный вывод новостей
Добрый день, уважаемые знатоки.
Есть код функции вывода новостей, необходимо этот вывод сделать постранично.

// выведем новости
//$typ=0 кратко 1- полно
function GetNews($typ=0)
{global $mysql;
$tmpcont='';
//////////////////////////////////////
$coltov=15;  //количество выводимых новостей на странице
echo ('coltov='.$coltov);
if(isset($_GET['p'])){
	$p=$_GET['p'];
	echo ('<br>'."isset: ".$p.'<br>');}
else {
	$p=1;
	echo ('<br>'."nope: ".$p.'<br>');}
 
$limitstart=($p-1)*$coltov;
 
$query='select count(nw.nomer) as cn from neonnews as nw order by datas' ;
$res = $mysql->sql_query($query) ;
$list = $mysql->sql_fetchrow($res) ;
$colvsego=$list['cn'];
echo $colvsego;
$det='<a href="?usrnews='.$coltov.'&cid=news&p=%s">%s</a>'; //ссылка на страницу
$pages=ViewPage($colvsego,$det,$p,$coltov,5); //5 (default = 10) - количество одновременно выводимых страниц
/////////////////////
$query='select *  from neonnews order by datas DESC';
$res = $mysql->sql_query($query) ;
 
if($coltov>0)
	{
	$tmpcont='fuck <div style="float:left; '._wdth.'">'.$pages.$listsortnw._templdetacs1;
 
		for($i=1; $i<=$coltov; $i++)
		{
		$listviv = $mysql->sql_fetchrow($res) ;
			if($typ)
			$tmpcont.= sprintf(_templnewsf,$listviv['datas'],$listviv['anons'],$listviv['news']);
			else
			$tmpcont.= sprintf(_templnews,$listviv['datas'],$listviv['anons'],$listviv['news']);
		}		
	$tmpcont.='</div>'._templdetacs2;
	}
$mysql->sql_freeresult($res);
return $tmpcont;
}


Новости выводятся, номера страниц тоже (1, 2, 3, 4 и пр.), переход на них посредстом GET осуществляется (номер страницы отображается в адресной строке). Однако новости не меняются, т.е. на первой странице были новости, например, о новой породе собак 2014, на второй (третьей или любой другой), тоже новости о новой породе собак 2014, хотя должны быть о старой модели автомобиля 2013.
Подозреваю, что дело в SQL-запросе. Вероятнее всего, не хватает "limit'.$limitstart.','.$coltov" в query, но как-то не выходит у меня лимитировать запрос (если лимитировать первый запрос, то не выводятся странички (1, 2, 3, 4 ...), если второй - не выводятся сами новости).
Или, может, нужно сделать новый запрос к БД?
Заранее благодарен и надеюсь на вашу помощь.
P.S. Функция ViewPage формирует как раз эти 1, 2, 3, 4 странички, их количество, их внешний вид и т.п.
P.S.S. В БД neonnews есть столбцы nomer (тот же id по сути), anons (короткая версия новости), datas (дата), news (полная версия новости).
P.S.S.S. Всякие echo там для себя, для проверки.
Ответить с цитированием