|
|
|
| Есть код вывода новостей
function index_page()
{
$result_index = mysql_query("SELECT * FROM news ORDER BY id");
$myrow_index = mysql_fetch_array($result_index);
if($myrow_index != "")
{
$sm_read = file("tpl/news.html");
$sm_read = implode("",$sm_read);
do
{
$edd_tamp = $sm_read;
$text = explode("[end]",$myrow_index[text]);
$edd_tamp = str_replace("[_text]",$text[0],$edd_tamp);
$edd_tamp = str_replace("[_title]",$myrow_index[title],$edd_tamp);
$edd_tamp = str_replace("[_id]",$myrow_index[id],$edd_tamp);
$edd_tamp = str_replace("[_author]",$myrow_index[author],$edd_tamp);
$edd_tamp = str_replace("[_date_b]",$myrow_index[date_b],$edd_tamp);
$news .= $edd_tamp;
}
while($myrow_index = mysql_fetch_array($result_index));
}
else $news = "<p align='center'>Нет записей в базе данных</p>";
return $news;
}
|
как можно сделать так чтобы новости выводились не кучей а постранично | |
|
|
|
|
|
|
|
для: skydemon
(03.09.2012 в 19:48)
| | Алгоритм прост:
0 решаем, сколько записей будем выводить на странице
1 находим общее число записей в таблице (select count)
2 делим одно на другое, чтобы получить количество страниц и расставляем ссылки типа ?page=2
3 где-то находим номер нужной страницы (ноль или из GET-массива
4 Формируем запрос на выдачу нескольких новостей в промежутке от номера страницы, помноженного на количество записей на страницу, до номера страницы, помноженного на количество записей на страницу плюс еще одно количество записей на страницу. для этого говорим в запросе "LIMIT x, y", где x - это номер страницы, помноженный на количество записей на страницу, а y - количество записей на страницу.
5 Ну и выводим | |
|
|
|
|
|
|
|
для: DJ Paltus
(03.09.2012 в 20:29)
| | Слушай у мя тут ещё 1 вопрос есть как можно последнее число из базы данных вывести тоесть:
у нас в базе есть такая таблица
| id | | news |
и она заполнена так
| id | | news |
1 one
2 second
ну дапустим пример просто как вывести последее число у поля иди тоесть 2 | |
|
|
|
|
|
|
|
для: skydemon
(03.09.2012 в 20:36)
| | select max(id) | |
|
|
|
|
|
|
|
для: DJ Paltus
(03.09.2012 в 20:38)
| | неправильный ответ в данном контексте
максимальный id и общее число записей в таблице могут отличаться, например при удалении некоторых строк таблицы.
для постраничной навигации уже давно используют CALC_FOUND_ROWS | |
|
|
|
|
|
|
|
для: Valick
(04.09.2012 в 09:07)
| | Задача вывести последнее число из таблицы, про количество записей никто не спрашивает Я предполагаю, что id в данном случае автоинкрементный столбец. Значит, мой ответ верен.
Насчет "давно используют SQL_CALC_FOUND_ROWS"... Гвозди и микроскопы. Пушки и воробьи. Плюс неиспользование индексации и продолжительные холиворы на эту тему. | |
|
|
|