вот такой код <? function link_bar($page, $pages_count) { for ($j = 1; $j <= $pages_count; $j++) { if ($j == $page) { echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> '; } else { echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> '; } if ($j != $pages_count) echo ' '; } return true; } $perpage = 10; if (empty($_GET['page']) || ($_GET['page'] <= 0)) { $page = 1; } else { $page = (int) $_GET['page']; } $count = mysql_numrows(mysql_query('SELECT * FROM ticket')) or die('Error! Записей не найдено!'); $pages_count = ceil($count / $perpage); if ($page > $pages_count) $page = $pages_count; $start_pos = ($page - 1) * $perpage; link_bar($page, $pages_count); echo '<p><b>Постраничный вывод информации</b></p>'; $result = mysql_query('SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage) or die('Error!'); while ($row = mysql_fetch_array($result)) { echo '<p>'.$row['some_field'].'</p>'; } но почему не ограничивает? выводит всю инфу как и раньше только цифорки страниц сверху добавились и все :think :?:
Лучше сделай так: <? $rc=3; //Скока на одной странице записей $min=$spage*$rc; $max=$rc; $sql_query="select * from news limit $min,$max"; $result=sql_execute($sql_query,$conn_id); $num_results=mysql_num_rows($result); if (mysql_num_rows($result)) { for ($i=0; $i<$num_results; $i++) { $row=mysql_fetch_array($result); echo '<b>'.$row[date].'</b><br>'; echo '<a href = "/?module=news&do=show&id='.$row[id].'">'.$row[miniman].'</a><br><br>'; } $sql_querya="select * from news"; $resulta=sql_execute($sql_querya,$conn_id); $num_resultsa=mysql_num_rows($resulta); $divide=$num_resultsa/3; $spages=intval($divide); if($num_resultsa <= $rc) { // echo " <b><<</b> [ "; // echo "1"; } else { if($divide==$spages) $lol=$spages; else $lol=$spages+1; echo "<a href=/?spage=".($spage-1)."><b><<</b></a> [ "; for($k=0; $k<=$lol-1; $k++) { $cur_spage=$k+1; if($k!=$spage) { echo " <a href=/?spage=$k>$cur_spage</a> "; } else echo "$cur_spage"; } } if ($spage==$spages) { echo " ]"; } else { echo " ] <a href=/?spage=".($spage+1)."><b>>></b></a>"; } } else { echo $lang['NEWS_NONEWSFOUND']; } ?> Сорри, но времениу меня мало Переделай чуток, а то это на отображение 3х новостей и помоему случайным образом А нет, последних Долго ты ждала Удачи
SeregA спасибо а чем мой код был плох? и мне нужно переход на другую страницу, а не выбор новостей, то есть чтоб после 10 записей 11 переходила на следующую страницу (например)
Проверил код с первого поста, изменил только название таблицы и поля на свое и вставил подключение в БД. Код правильно работал. Единственное, что могу посоветовать, заменить функцию mysql_numrows на mysql_num_rows и проконтролировать значения переменных $page, $count, $start_pos. Но если выводится циферки вверху страницы, то они должны быть правильными. Ну и посмотреть как выглядит запрос 'SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage
print 'SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage; Если выводятся все записи, то в этом виноват только запрос.
Перед или после $result = mysql_query('SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage) or die('Error!'); вставить print 'SELECT * FROM ticket LIMIT '.$start_pos.', '.$perpage; и посмотреть какой запрос выведется