Вывод из базы постранично

amen666

Новичок
Вывод из базы постранично

Помогите разобраться с разбивкой.
Есть простенькая форма (имя, сообщение), на той же странице - вывод сообщений:
PHP:
<?php
include "config.php";
?>
<form action=add.php method=POST>
ИМЯ................: <input type=text name="name"> <br>
СООБЩЕНИЕ:           <textarea type=text name="msg"></textarea><br>
                     <input type=submit value="отправить">
                     <input type=hidden value="add">
</form>
<hr>


<?
$per_page=3;
$query="SELECT * FROM miproject ORDER BY id DESC LIMIT 0,$per_page";
$res=mysql_query($query);
$row=mysql_fetch_array($res);
$total_rows=$row['0'];
$num_pages=ceil($total_rows/$per_page);
while ($row=mysql_fetch_array($res))
{

echo "<b>Имя:</b>"; echo $row['name'];
echo "<br>";
echo "<b>Сообщение:</b>"; echo $row['msg'];
echo "<br><hr>";
}
for($i=1;$i<=$num_pages; $i++)
{
 echo '<a href="'.$_SERVER['PHP_SELF'].'?num='.$i*$per_page.'">'.$i."</a>\n";
}  

?>
Нужно, чтобы выводилось три сообщения и номера страничек внизу.
Данный скрипт выводит 2 сообщения и тучу ссылок страниц, которые не работают.

P.S. Пример взял с PHPFAQ
 

Фанат

oncle terrible
Команда форума
может, взять пример поточнее?
выделить мышкой, скопировать и вставить в свой скрипт, а не переписывать от руки?
 

amen666

Новичок
*****, делал, не работает.
Поэтому взял простейший вариант, описанный там, но видать там чего-то не учли.
 

Фанат

oncle terrible
Команда форума
Во-первых, там код не для копирования, а для изучения. Чтобы существа, обремененные интеллектом, изучили решение этой сложнейшей задачи, и могли впоследствии воспроизвести его самостоятельно.

Во-вторых, я сейчас посмотрел этот простейший вариант, и там чисто визуально совсем не такой код, какой мы видим здесь. Так что, что-то не учли те ручки, которые копировали. может, им к хирургу обратиться?
 

amen666

Новичок
Ой ну блин какие мы остроумные!

Вот подправленный вариант:

PHP:
$per_page = 3;

$query = "SELECT * FROM miproject";
$res = mysql_query($query);
$total_rows = mysql_num_rows($res);

$num_pages = ceil($total_rows/$per_page);
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;

$q = "SELECT * FROM miproject ORDER BY DESC LIMIT ($page-1)*$per_page, $per_page";
$r = mysql_query($q);
while($row =mysql_fetch_array($r))
{
 echo "<b>Имя:</b>"; echo $row['name'];
 echo "<br>";
 echo "<b>Сообщение:</b>"; echo $row['msg'];
 echo "<br><hr>";
}

for($i=1;$i<=$num_pages; $i++)
{
 echo '<a href="'.$_SERVER['PHP_SELF'].'?num='.$i*$per_page.'">'.$i."</a>\n";
}
PHP:
 

amen666

Новичок
Не выводит записи - Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in j:\home\mysql.ru\www\index.php on line 28. Это строчка while($row =mysql_fetch_array($r))

и опять туча никуда не ведущих ссылок
 

Фанат

oncle terrible
Команда форума
что значит "никуда не ведущих ссылок"?
чтобы запрос не писал ошибку, его надо составлять без ошибок
 

amen666

Новичок
Автор оригинала: *****
что значит "никуда не ведущих ссылок"?
в адресной строке меняется num=, осталльное "стоит на месте"

чтобы запрос не писал ошибку, его надо составлять без ошибок
правда?)
ну для того я создал эту тему, чтобы добрые люди указали на ошибку.
 

Фанат

oncle terrible
Команда форума
насколько я вижу, во втором варианте кода запрос не такой, как в первом
какой запрос тебе нужен, можешь знать только ты. никакие добрые люди запрос за тебя не придумают

если ты не можешь скопировать три строчки кода без ошибок - попробуй найти занятие попроще
 
Сверху