Помогите разобраться с разбивкой. Есть простенькая форма (имя, сообщение), на той же странице - вывод сообщений: 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
Volt(220), первое сделал вроде, а про ID последней записи даже не думал. Разве это обязательно? Вот подправленный вариант: 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:
Помогли добрые люди. Осталось вот что: выводтся ошибка Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource Вот код: $q = "SELECT * FROM miproject ORDER BY DESC LIMIT ($page-1)*$per_page, $per_page*$page"; $r = mysql_query($q); while($row=mysql_fetch_array($r))
Ставлю вместо ($page-1)*$per_page, $per_page*$page - 0,3 - результат тот же! Подскажите в чём ошибка. Всю голову себе сломал - не понимаю в чём дело. Всё вроде правильно составлено.
С выводом я разобрался. Только ссылки опять не работают. PHP: $q="SELECT * FROM miproject ORDER BY id 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"; } В адресной строке значение num меняется, но отображаются всё те же 3 первых сообщения.