
19.04.2007, 15:47
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
PHP код:
// Переменная хранит число пользователей выводимых на станице
$num = 20;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число пользователей в базе данных
$result = mysql_query("SELECT COUNT(*) as cnt FROM `users`");
$users = mysql_result($result, 0, "cnt");
// Находим общее число страниц
$total = intval(($users - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) || $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM `users` ORDER by `id` ASC LIMIT $start, $num");
for ($i = 0; $i < mysql_num_rows($result); $i++) {
//Здесь пишешь то, что должно выводиться на странице N раз
}
//Вводим ссылки на др.страницы
$file = 'users.php';
if ($page != 1)
$pervpage = "<a href= ./$file?page=1><< </a>";
// <a href= ./$file?page=". ($page - 1) ."><</a> ";
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = #"<a href= ./$file?page=". ($page + 1) .">></a>
"<a href= ./$file?page=" .$total. "> >></a>";
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0)
$page2left = " <a href= ./$file?page=". ($page - 2) .">". ($page - 2) ."</a> | ";
if($page - 1 > 0)
$page1left = "<a href= ./$file?page=". ($page - 1) .">". ($page - 1) ."</a> | ";
if($page + 2 <= $total)
$page2right = " | <a href= ./$file?page=". ($page + 2) .">". ($page + 2) ."</a>";
if($page + 1 <= $total)
$page1right = " | <a href= ./$file?page=". ($page + 1) .">". ($page + 1) ."</a>";
// Вывод меню
echo $page2left.$page1left."<b>".$page."</b>".$page1right.$page2right;
}
|
|
|