При извлечении из БД поставить лимит:
$sql = "SELECT * FROM table_name LIMIT ".(($page_id-1)*10).", 10";
Вот в этом запросе в зависимости от номера страницы ($page_id) будет выводиться по 10 записей из БД.. .
Т. е. для 1-й страницы запрос примет вид: $sql = "SELECT * FROM table_name LIMIT 0, 10";
для второй - $sql = "SELECT * FROM table_name LIMIT 10, 10"; и т. д.
Другие языки программирования и технологии
как делаеться сортировка данных по страницам. Типа стр 1 2 3 4 5...
Что значит сортировка данных по страницам? это в смысле постраничный вывод?
Вот смотри код, который выводит сами номера страничек:
$all=300;
$na_str=10;
if ($all > $na_str){
echo '<center>';
for ($i=0; $i < ceil(($all)/$na_str); $i++){
echo ' < a id="text" href="'.$PHP_SELF.'?src=news&pg='.($i*$na_str).' " >';
if ($_GET['pg']==($i*$tna_str)){
echo '<font>'.($i+1).'</font>';
}else{
echo ($i+1);
}
echo ' < / a > ';
echo '</center>';
Затем определяешь какая нажата страничка (активная)
if (!isSet($_GET['pg'])){ $_GET['pg']=0 ; }
и делаешь вывод
Show($_GET['pg']);
Функция Show примерно такая
function Show($start_new){
if ($start_new<0){$start_new=0;}
(($start_new+$na_str) <= ($all)) ? $end_new=($start_new+$na_str) : $end_new=($this->all);
$sql='select ...'; // или что и откуда берешь тут твой код
for ($i=$start_new; $i<$end_new; $i++){
mysql_data_seek($result,$i);
$ar_new = mysql_fetch_array($result);
}
}
т. е. Show выводит значания от $start до $start+$na_str
Вот смотри код, который выводит сами номера страничек:
$all=300;
$na_str=10;
if ($all > $na_str){
echo '<center>';
for ($i=0; $i < ceil(($all)/$na_str); $i++){
echo ' < a id="text" href="'.$PHP_SELF.'?src=news&pg='.($i*$na_str).' " >';
if ($_GET['pg']==($i*$tna_str)){
echo '<font>'.($i+1).'</font>';
}else{
echo ($i+1);
}
echo ' < / a > ';
echo '</center>';
Затем определяешь какая нажата страничка (активная)
if (!isSet($_GET['pg'])){ $_GET['pg']=0 ; }
и делаешь вывод
Show($_GET['pg']);
Функция Show примерно такая
function Show($start_new){
if ($start_new<0){$start_new=0;}
(($start_new+$na_str) <= ($all)) ? $end_new=($start_new+$na_str) : $end_new=($this->all);
$sql='select ...'; // или что и откуда берешь тут твой код
for ($i=$start_new; $i<$end_new; $i++){
mysql_data_seek($result,$i);
$ar_new = mysql_fetch_array($result);
}
}
т. е. Show выводит значания от $start до $start+$na_str
1) Не достаточно данных.
От куда берутся данные, как хранятся?
Как вариант:
// Get params
$startpos = intval(getParam($_REQUEST['startpos'],0));
...
$per_count = 10; // Количество ответов на странице
...
// 1..10 11..20 21..30
$links = '';
$query = "SELECT COUNT(*) FROM table";
$result = mysql_query($query) or die('Illegal query: ' . mysql_error());
$row = mysql_fetch_array($result);
$count = $row[0];
if ( $count>$per_count)
{
$links = '';
$c = ceil($count/$per_count);
for ($i=0; $i<$c; $i++)
{
$page = (($i*$per_count)==$startpos) ? strval($i*$per_count+1 . ' - ' . ($i+1)*$per_count . ' ') : ' ';
$links .= $page;
}
}
От куда берутся данные, как хранятся?
Как вариант:
// Get params
$startpos = intval(getParam($_REQUEST['startpos'],0));
...
$per_count = 10; // Количество ответов на странице
...
// 1..10 11..20 21..30
$links = '';
$query = "SELECT COUNT(*) FROM table";
$result = mysql_query($query) or die('Illegal query: ' . mysql_error());
$row = mysql_fetch_array($result);
$count = $row[0];
if ( $count>$per_count)
{
$links = '';
$c = ceil($count/$per_count);
for ($i=0; $i<$c; $i++)
{
$page = (($i*$per_count)==$startpos) ? strval($i*$per_count+1 . ' - ' . ($i+1)*$per_count . ' ') : ' ';
$links .= $page;
}
}
Похожие вопросы
- ПОМОГИТЕ! Нужны числа от 1 до 1 000 000 в таком порядке:. 1 2 3 4 5 6 7
- Pomogite pozhalujsta.. vse vozmozhnie kombinacii.. 1 2 3 4 5 6 7 8 9 10 11 12
- Здравствуйте. Заключите, пожалуйста, следующий набор цифр в модуль. Очень нужно. 1 2 3 4 5 6 7 8 9 Премного благодарен.
- Вычислить произведение n>=2 (n четное) сомножителей y=(2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7)*..
- Найдите закономерности 1,1,1,2,3,4,3,5,7_,7,_,5,9,13,_,_,16
- Сколько чисел надо взять в последовательности 1+2+3+4...,чтобы получить число,больше чем N?
- Напишите задачу на C++. Найти, какая оценка наиболее часто встречалась на ЕГЭ. Входные данные: 1 1 1 2 2 3 1 3 4 5 3.
- ПОМОГИТЕ! В паскале заполнить квадратный массив размерностью n числами 1,2,3… по спирали от края к центру по часовой стр
- СИ: "int a[3]={1, 2, 3}, * p=a+1" Чему равно значение выражения "p[0]-2"? И что вообще здесь происходит?
- Pascal. Программа выводит 3 столбца по рядам, а нужно чтоб №1 2 3.. в столбик. Помогите.