разбивка на страницы на пхп
Т.е. в результате у меня, например, 53 группы значений, а мне их надо разбить так, чтоб на странице выводилось по 20.
И получилось что-то типа: 1-20 20-40 40-53
Подскажите!
Не могу никак собрать рабочую подпрограммку для разбивки на страницы результата вывода БД.
Т.е. в результате у меня, например, 53 группы значений, а мне их надо разбить так, чтоб на странице выводилось по 20.
И получилось что-то типа: 1-20 20-40 40-53
Подскажите!
Здравствуйте, уточните в чем конкретно проблема? В написании соотв. SQL - запросов или в чем?
ip
Здравствуйте, уточните в чем конкретно проблема? В написании соотв. SQL - запросов или в чем?
ip
Да нет, запрос и вывод результатов - не проблема.
Если у меня есть какое-то кол-во данных (уже обработанных) - они выводятся все на одной странице, а я хочу сделать, чтобы результат разбился на определенное кол-во "данных" и выводился постранично..., т.е. из бд я достаю данные и в цикле последовательно выполняю какие-то действия с ними (например: вывожу в виде таблички) и мне надо, чтобы определенное кол-во (например: 20 табличек) было на первой странице, следующии 20 на следующей и т.д.
А, например, внизу страницы, должны автоматически выстроиться ссылки на страницы с результатами (пример: из БД достал 46 "результатов", ссылки должны быть такие: 1-20 21-40 41-46).
далее ты считываешь из URL номер страницы, переданный тебе параметром.
if(!isset($p)){
$p=1;
}
после этого ты выбираешь из базы записи, нужные тебе, т.е. от (p-1)*20+1 до p*20, если ты выводишь по 20 сообщений:
после этого ты считаешь кол-во страниц. пусть $k-кол-во записей в базе(46)
$numPages=floor($k/20);
} else{ //иначе нужна дополнительная неполная страница
$numPages=floor($k/20)+1;
}
теперь запускаем цикл по страницам и выводим ссылку на очередную страницу и ее номер, не не забывая опустить ссылку на текущуу страницу:
if ($i==$p){ //текущая страница
echo($i);
echo("");
} else{ //какая-то другая страница
echo("<A HREF='script.php?p=$i'>");
echo($i);
echo("</A>$nbsp;");
}
}
вот что-то такое. в HTML оформишь сам, на работоспособность код, конечно, не проверял - писал прямо в окошке форума
вначале ты каким-то образом :) определяешь кол-во записей в таблице(у тебя - 46). например SELECT COUNT(поле) FROM table или как-то еще.
далее ты считываешь из URL номер страницы, переданный тебе параметром.
if(!isset($p)){
$p=1;
}
после этого ты выбираешь из базы записи, нужные тебе, т.е. от (p-1)*20+1 до p*20, если ты выводишь по 20 сообщений:
после этого ты считаешь кол-во страниц. пусть $k-кол-во записей в базе(46)
$numPages=floor($k/20);
} else{ //иначе нужна дополнительная неполная страница
$numPages=floor($k/20)+1;
}
теперь запускаем цикл по страницам и выводим ссылку на очередную страницу и ее номер, не не забывая опустить ссылку на текущуу страницу:
if ($i==$p){ //текущая страница
echo($i);
echo("");
} else{ //какая-то другая страница
echo("<A HREF='script.php?p=$i'>");
echo($i);
echo("</A>$nbsp;");
}
}
вот что-то такое. в HTML оформишь сам, на работоспособность код, конечно, не проверял - писал прямо в окошке форума
Да, на счет того, чтобы записи считывать не все сразу, а по определенным частям, что-то не подумал \:
А что такое floor?
floor - аналог паскалевского trunc
берет целую часть от числа
floor(2.012)=2
Да, на счет того, чтобы записи считывать не все сразу, а по определенным частям, что-то не подумал \:
А что такое floor?
Кстати, если база - MySql то запрашивать часть данных можно с помощью ключевого слова LIMIT.
i.p.