Мне надо сделать так что бы на странице выводилось 1 сообщение (скрипт называеться show_announcement.php). Сообщений много. Вот то что у меня получилось, но здесь что то не такю Исправьте пожалуйста. <?php include ("mysql.php"); $section_id = $_GET['id']; $section_id = mysql_real_escape_string($section_id); $section_id = (int)$section_id; $query = mysql_query ("SELECT id, section, type, text, name, email, date FROM announcements WHERE section = '$section_id' ORDER BY date desc"); while (list ($id, $section, $type, $text, $name, $email, $date) = mysql_fetch_array ($query)) { echo "<table width='300' border ='1' >"; echo "<tr>"; echo "<td width='150'>$type</td><td><div align='right'>$date</div></td>"; echo "</tr>"; echo "</table>"; echo "<table width='300' border ='1'>"; echo "<tr>"; echo "<td>$text</td>"; echo "</tr>"; echo "</table>"; echo "<table width='300' border ='1'>"; echo "<tr>"; echo "<td width='150'>$name</td><td><div align='right'><a href='mailto:$email'>$email</div></td>"; echo "</table>"; echo "<br>"; } $num = mysql_num_rows ($query); $page = "0"; if ($num > 0) { $page = $page + 1; echo "<a href='show_announcement?page=$page'>$page </a>"; } ?>
Понял. А как сделать так что бы данные выводились через list // количество записей, выводимых на странице $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> "; } } И не было .$_SERVER['PHP_SELF']. и тп. Измените пожалуйста
Тут нет ничего сложного. Подумай сам и попробуй еще раз. Не получится - пиши и покажи, что именно не получается. З.ы форматируй код тегами [ php ] [/ php ]
PHP: <?php include ("mysql.php"); $query = mysql_query ("SELECT id, image, title FROM sections"); echo "<table border='0'>"; while (list ($id, $image, $title) = mysql_fetch_array($query)) { echo "<tr>"; echo "<td width='60'><div align='center'><img src =$image></td><td><a href=http://localhost/show_announcement?id=$id>$title</a></td>"; echo "</tr>"; } echo "</table>"; $per_page=2; if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0; $start=abs($page*$per_page); $q="SELECT count(*) FROM sections"; $res=mysql_query($q); $row=mysql_fetch_row($res); $total_rows=$row[0]; $num_pages=ceil($total_rows/$per_page); for($id=1;$id<=$num_pages;$id++) { if ($id-1 == $page) { echo "$id "; } else { echo "<a href=".$_SERVER['PHP_SELF']."?page=$id>$id</a>"; } } ?> Вот что у меня получилось. Но скрипт не переносит данніе на след. страницу. Он выводит все данные на одной странице. Страниц несколько и на каждой из них все данные, а должно отображаться на странице - 2 сообщения. Люди помогите!! Исправь пожалуйста.
Ты же первую выборку из базы делаешь без условий. Конечно у тебя всё будет выводиться. Сделай как ты сам раньше написал: посчитай в зависимости от введённой странички сколько записей выбрать из базы. Только ты тут в запросе вроде перепутал местами $start и $per_page. После LIMIT сначала идёт кол-во выборок, а потом - от куда отсчитывать.