Есть код PHP: /* Управление страницами */ $res_sql = mysql_num_rows(mysql_query("SELECT * FROM mail")); $page = $_GET['page']; if ($page == '') { $page = '0'; } else { $page = $page; } $i1 = 25; $i2 = $page+$i1; $i3 = $page-$i1; if ($page <= 0) { $pages = "Предыдущая | <a href=index.php?page=$i2&sort=$sort>Следующая</a>"; } elseif ($page >= $res_sql-25) { $pages = "<a href=index.php?page=$i3&sort_po=$sort>Предыдущая</a> | Следующая"; } else { $pages = "<a href=index.php?page=$i3&sort_po=$sort>Предыдущая</a> | <a href=index.php?page=$i2&sort_po=$sort>Следующая</a>"; } Он выводит записи на страницу по 25 штук... но.. но выводит их предыдущая/следующая... вопрос: как сделать из этого вывод 1/2/3/4/.... вернее оба варианта ))
омг... когда я не знал про LIMIT, то использовал COUNT, чтобы делать бешенные вычисления для постраничного пейджера. А Nemo делает полную выборку %) 1. query -> COUNT(`id`) 2. Делим всё на страницы по 25 строк на каждой, получаем кол-во страниц. 3. В зависимости от текущей страницы прибавляем/убавляем 1 (учитывая максимум, минимум). 4. Если нужно, еще эти 1.2.3.4 можно делить на 10ки, но хотя бы с этим разберись для начала 5. Далее, в зависимости от страницы делаешь выборку 'SELECT *..... LIMIT текущая_страница,25', где 25 - кол-во элементов на выборку, текущая_страница - порядковый номер списки элементов. Т.е вся таблица делится на списки по 25 элементов.
щас покажу вывод .. PHP: $sql = mysql_query("SELECT * FROM mail ORDER BY login LIMIT $page,25"); while($nextrow = mysql_fetch_array($sql)) { // }
Вот один из первых моих баров. PHP: <? ## $maxnews[0] - колическвто новостей, $ot - номер, от которого выводятся числа (1-10), $do - до которого выводятся числа ##$stranic - всего страниц с 5ю новостями, $str - текущая страница if ($kolnews[0] > 5) { echo "<tr><td class=\"novost\">"; $k = (ceil(($str/10)))*10; $ot = $k - 9; if ($str > 10) { $go = $ot - 10; echo "<a href=\"index.php?go=index&str=".$go."\"><<</a> "; } $do = ($k <= $stranic) ? $k : $stranic; for ($i=$ot;$i<=$do;$i++) { echo "<a href=\"index.php?go=index&str=".$i."\">".$i."</a> "; } if (($stranic > 10) and (($k + 1) <= $stranic)) { $go = $k + 1; echo "<a href=\"index.php?go=index&str=".$go."\">>></a> ";} echo "</td></tr>"; } ?>