Скрипт
<?php
/* Создаем соединение */
define('DB_HOST', 'localhost'); // сервер БД
define('DB_USER', 'root'); // логин БД
define('DB_PASS', ''); // пароль БД
define('DB_NAME', 'test'); // имя БД
if (!$conn = mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
echo 'не могу подключиться к серверу БД';
exit;
}
if (!mysql_select_db(DB_NAME)) {
echo 'не могу подключить БД';
}
// запрещаем вывод предупреждений
Error_Reporting(E_ALL & ~E_NOTICE);
// в какой кодировке получать данные от БД для вывода клиенту
mysql_query('set character_set_results="utf8"');
// Устанавливаем количество записей, которые будут выводиться на одной странице
// Поставьте нужное вам число. Для примера я указал одну запись на страницу
$quantity = 2;
// Ограничиваем количество ссылок, которые будут выводиться перед и
// после текущей страницы
$limit = 3;
// Если значение page= не является числом, то показываем
// пользователю первую страницу
if (!is_numeric($page)) {
$page = 1;
}
// Если пользователь вручную поменяет в адресной строке значение page= на нуль,
// то мы определим это и поменяем на единицу, то-есть отправим на первую
// страницу, чтобы избежать ошибки
if ($page < 1) {
$page = 1;
}
// Узнаем количество всех доступных записей
$result2 = mysql_query("SELECT * FROM contacts;");
/* @var $num type */
$num = mysql_num_rows($result2);
// Вычисляем количество страниц, чтобы знать сколько ссылок выводить
$pages = $num/$quantity;
// Округляем полученное число страниц в большую сторону
$pages = ceil($pages);
// Здесь мы увеличиваем число страниц на единицу чтобы начальное значение было
// равно единице, а не нулю. Значение page= будет
// совпадать с цифрой в ссылке, которую будут видеть посетители
$pages++;
// Если значение page= больше числа страниц, то выводим первую страницу
if ($page > $pages) {
$page = 1;
}
// Выводим заголовок с номером текущей страницы
echo '<strong style="color: #df0000">Страница № ' . $page .
'</strong><br /><br />';
// Переменная $list указывает с какой записи начинать выводить данные.
// Если это число не определено, то будем выводить
// с самого начала, то-есть с нулевой записи
if (!isset($list)) {
$list = 0;
}
// Чтобы у нас значение page= в адресе ссылки совпадало с номером
// страницы мы будем его увеличивать на единицу при выводе ссылок, а
// здесь наоборот уменьшаем чтобы ничего не нарушить.
$list = --$page * $quantity;
// Делаем запрос подставляя значения переменных $quantity и $list
$result = mysql_query("SELECT * FROM contacts LIMIT $quantity OFFSET $list;");
// Считаем количество полученных записей
$num_result = mysql_num_rows($result);
/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1251\" />
<title>Вывод данных из MySQL</title>
<style type=\"text/css\">
<!--
body { font: 12px Georgia; color: #666666; }
h3 { font-size: 16px; text-align: center; }
table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
td { padding: 3px; text-align: center; vertical-align: middle; }
.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
-->
</style>
</head>
<body>
<h3>Вывод сохраненных данных из таблицы MySQL</h3>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
<tr style=\"border: solid 1px #000\">
<td><b>Номер</b></td>
<td align=\"center\"><b>Фамилия, имя и отчество клиента</b></td>
<td align=\"center\"><b>Статус</b></td>
</tr>
");
// Выводим все записи текущей страницы
for ($i = 0; $i < $num_result; $i++) {
$row = mysql_fetch_array($result);
echo "<tr>\n";
echo "<td>" . $row['id'] . "</td>\n";
echo "<td>" . $row['name'] . "</td>\n";
echo "<td>" . $row['status'] . "</td>\n";
}
echo ("</table>\n");
echo 'Страницы: ';
// _________________ начало блока 1 _________________
// Выводим ссылки "назад" и "на первую страницу"
if ($page >= 1) {
// Значение page= для первой страницы всегда равно единице,
// поэтому так и пишем
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=1"><<</a> ';
// Так как мы количество страниц до этого уменьшили на единицу,
// то для того, чтобы попасть на предыдущую страницу,
// нам не нужно ничего вычислять
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . $page .
'">< </a> ';
}
// __________________ конец блока 1 __________________
// На данном этапе номер текущей страницы = $page+1
$_this = $page + 1;
// Узнаем с какой ссылки начинать вывод
$start = $_this - $limit;
// Узнаем номер последней ссылки для вывода
$end = $_this + $limit;
// Выводим ссылки на все страницы
// Начальное число $j в нашем случае должно равнятся единице, а не нулю
for ($j = 1; $j < $pages; $j++) {
// Выводим ссылки только в том случае, если их номер больше или равен
// начальному значению, и меньше или равен конечному значению
if ($j >= $start && $j <= $end) {
// Ссылка на текущую страницу выделяется жирным
if ($j == ($page + 1)) {
echo '<a href="' . $_SERVER['SCRIPT_NAME'] .
'?page=' . $j . '"><strong style="color: #df0000">' . $j .
'</strong></a> ';
}
// Ссылки на остальные страницы
else {
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' .
$j . '">' . $j . '</a> ';
}
}
}
// _________________ начало блока 2 _________________
// Выводим ссылки "вперед" и "на последнюю страницу"
if ($j > $page && ($page + 2) < $j) {
// Чтобы попасть на следующую страницу нужно увеличить $pages на 2
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($page + 2) .
'"> ></a> ';
// Так как у нас $j = количество страниц + 1, то теперь
// уменьшаем его на единицу и получаем ссылку на последнюю страницу
echo '<a href="' . $_SERVER['SCRIPT_NAME'] . '?page=' . ($j - 1) .
'">>></a> ';
}
// __________________ конец блока 2 _______
?>
А вот ссылка на работу с внешнего сервера
http://strahovka-vip.by/test3.php