igortik
Новичок
Вопросо о выборке из БД
Уважаемые участники форума, сразу прошу простить меня, если Вам мой вопрос покажется глупым, т.к. человек я неопытный и только начинаю иметь дело с php.
У меня возникла такая трудность:
Нашол на Вашем форуме ссылку для организации разбивки постранично вывода из базы mysql.
Источник
Вот сам код.
// количество записей, выводимых на странице
$per_page=10;
// получаем номер страницы
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
// вычисляем первый оператор для LIMIT
$start=abs($page*$per_page);
// составляем запрос и выводим записи
// переменную $start используем, как нумератор записей.
$q="SELECT * FROM `table` ORDER BY field LIMIT $start,$per_page";
$res=mysql_query($q);
while($row=mysql_fetch_array($res)) {
echo ++$start.". ".$row['field']."<br>\n";
}
// дальше выводим ссылки на страницы:
$q="SELECT count(*) FROM `table`";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];
$num_pages=ceil($total_rows/$per_page);
for($i=1;$i<=$num_pages;$i++) {
if ($i-1 == $page) {
echo $i." ";
} else {
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";
}
}
Задача: сделать так, чтобы постраничный вывод был в обратном направлении, т.е. последняя запись в базе выходила на первую страничку в самом верху, а не так, как получается здесь, что выборка происходит последовательно и последняя запись уходит вниз.
Для чего на практике?
Хочу сделать блок новостей, сами понимаете, последняя новость всегда должна быть выше.
п.с. убедительная просьба не ссылать меня на поиск по форуму, каждый когда-то нчинает и сталкивается со сложностями.
Мне лишь нужно в данном примере поправить код, какой - не знаю
С уважением, Игорь
Уважаемые участники форума, сразу прошу простить меня, если Вам мой вопрос покажется глупым, т.к. человек я неопытный и только начинаю иметь дело с php.
У меня возникла такая трудность:
Нашол на Вашем форуме ссылку для организации разбивки постранично вывода из базы mysql.
Источник
Вот сам код.
// количество записей, выводимых на странице
$per_page=10;
// получаем номер страницы
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
// вычисляем первый оператор для LIMIT
$start=abs($page*$per_page);
// составляем запрос и выводим записи
// переменную $start используем, как нумератор записей.
$q="SELECT * FROM `table` ORDER BY field LIMIT $start,$per_page";
$res=mysql_query($q);
while($row=mysql_fetch_array($res)) {
echo ++$start.". ".$row['field']."<br>\n";
}
// дальше выводим ссылки на страницы:
$q="SELECT count(*) FROM `table`";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];
$num_pages=ceil($total_rows/$per_page);
for($i=1;$i<=$num_pages;$i++) {
if ($i-1 == $page) {
echo $i." ";
} else {
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";
}
}
Задача: сделать так, чтобы постраничный вывод был в обратном направлении, т.е. последняя запись в базе выходила на первую страничку в самом верху, а не так, как получается здесь, что выборка происходит последовательно и последняя запись уходит вниз.
Для чего на практике?
Хочу сделать блок новостей, сами понимаете, последняя новость всегда должна быть выше.
п.с. убедительная просьба не ссылать меня на поиск по форуму, каждый когда-то нчинает и сталкивается со сложностями.
Мне лишь нужно в данном примере поправить код, какой - не знаю

С уважением, Игорь