Тема: Постраничный вывод данных из Бд
Как сделать нормальный постраничный вывод данных из базы данных, тоесть чтобы данные делило на страницы...Кто-то знает такие скрипты ?) или функции
Цитатник - .
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум запущен в тестовом режиме. Приятного общения!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как сделать нормальный постраничный вывод данных из базы данных, тоесть чтобы данные делило на страницы...Кто-то знает такие скрипты ?) или функции
Простейший вариант:
index.php?category=1&page=3&col=10Скрипт
<?php
// статей на страницу
$col = (!isset($col)) ? 10 : $col;
// номер страницы
$page = (!isset($page) || $page<=1) ? 1 : $page;
$start = $col*($page-1);
// категория
$cat = (!isset($category)) ? "" : " WHERE catid=$category ";
$query = "SELECT * FROM pref_table $cat ORDER BY id desc LIMIT $start,$col;";
?>Простейший вариант
index.php?category=1&page=3&col=10
Скрипт
<?php
// статей на страницу
$col = (!isset($col)) ? 10 : $col;
// номер страницы
$page = (!isset($page) || $page<=1) ? 1 : $page;
$start = $col*($page-1);
// категория
$cat = (!isset($category)) ? "" : " WHERE catid=$category ";$query = "SELECT * FROM pref_table $cat ORDER BY id desc LIMIT $start,$col;";
?>
А я немного по другому делал), но сейчас не об этом как сделать чтобы страницы воподились, тоесть:
1 2 3 4 5 6 7 8 ...
ну сколько их в базе данных всего?
вот простейший скрипт организации пайджинга (сам написал:))
$kol_na_str - сколько элементов выводить на страницу
$query - запрос к базе данных на выбор страниц
$link - ссылка на страницу (обычно на текущую)
$db - объект для работы с базой данных
##################################
function paging($kol_na_str,$query,$link){
global $ot, $db, $page_;
if(!isset($page_))$page_=1; $red=$page_;
$res=$db->query($query);
$num=$db->num_rows();
$paging.="<table align=\"center\"><tr><td class=paging>страницы: </td><td><table class=paging cellspacing=2><tr>";
if($page_>5)$paging.="<td><a href=\"".$link."&ot=0&page_=1\"><<</a> ... </td>";
if($page_>5)$page_=$page_-5;else $page_=1;
$ot=$page_*$kol_na_str-$kol_na_str;
$k=1;
while($k<10){
if($page_==$red){$paging.="<td> <a href=\"".$link."&ot=".$ot."&page_=$page_\"><font color=\"#ff0000\">".$page_."</font></a> </td>";}
else{$paging.="<td> <a href=\"".$link."&ot=".$ot."&page_=$page_\">".$page_."</a> </td>";}
$ot=$ot+$kol_na_str;$page_++;$k++;
if($ot>=$num){break;}
}
if($num>($kol_na_str*10)){$end=$num-$kol_na_str;$page_=round($num/$kol_na_str,0); $paging.="<td> ... <a href=\"".$link."&ot=$end&page_=$page_\" title=\"в конец\">>></a></td>";}
$paging.="</tr></table></td></tr></table>";
return $paging;
}
############### пример использования функции #################
$kol_na_str=6;if(!isset($ot))$ot=0;
$db->query("select * from pages order by pid desc limit $ot, $kol_na_str");
while($row=$db->get_row()){
//вывод самих страниц
}
echo paging($kol_na_str,"select * from pages","index.php");
#######################################################
код выдрал из своего рабочего скрипта, может он и не запустится у тебя сходу,
но главное это принцип его работы, как он устроен. Попробуй разобраться, я думаю это не будет проблемой.
Отредактировано egori4 (2009-02-16 21:37:32)
вот простейший скрипт организации пайджинга (сам написал:))
$kol_na_str - сколько элементов выводить на страницу
$query - запрос к базе данных на выбор страниц
$link - ссылка на страницу (обычно на текущую)
$db - объект для работы с базой данных##################################
function paging($kol_na_str,$query,$link){
global $ot, $db, $page_;
if(!isset($page_))$page_=1; $red=$page_;
$res=$db->query($query);
$num=$db->num_rows();
$paging.="<table align=\"center\"><tr><td class=paging>страницы: &nbsp;&nbsp;</td><td><table class=paging cellspacing=2><tr>";
if($page_>5)$paging.="<td><a href=\"".$link."&ot=0&page_=1\"><<</a> ... </td>";
if($page_>5)$page_=$page_-5;else $page_=1;
$ot=$page_*$kol_na_str-$kol_na_str;
$k=1;
while($k<10){
if($page_==$red){$paging.="<td>&nbsp;<a href=\"".$link."&ot=".$ot."&page_=$page_\"><font color=\"#ff0000\">".$page_."</font></a>&nbsp;</td>";}
else{$paging.="<td>&nbsp;<a href=\"".$link."&ot=".$ot."&page_=$page_\">".$page_."</a>&nbsp;</td>";}
$ot=$ot+$kol_na_str;$page_++;$k++;
if($ot>=$num){break;}
}
if($num>($kol_na_str*10)){$end=$num-$kol_na_str;$page_=round($num/$kol_na_str,0); $paging.="<td>&nbsp;...&nbsp;<a href=\"".$link."&ot=$end&page_=$page_\" title=\"в конец\">>></a></td>";}
$paging.="</tr></table></td></tr></table>";
return $paging;
}############### пример использования функции #################
$kol_na_str=6;if(!isset($ot))$ot=0;
$db->query("select * from pages order by pid desc limit $ot, $kol_na_str");
while($row=$db->get_row()){
//вывод самих страниц}
echo paging($kol_na_str,"select * from pages","index.php");
#######################################################код выдрал из своего рабочего скрипта, может он и не запустится у тебя сходу,
но главное это принцип его работы, как он устроен. Попробуй разобраться, я думаю это не будет проблемой.Отредактировано egori4 (Сегодня 22:37:32)
Спасибо.
привет нужен скрипт, такой ограНИчивающий время на просмотр сайта или его страницы и переключающий на другую страницу
спасибо
привет нужен скрипт, такой ограНИчивающий время на просмотр сайта или его страницы и переключающий на другую страницу
спасибо
Зачем постить в разных темах? - это называеться СПАМ!
Сообщений [ 7 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
punbb