[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нет перехода по страницам
spinozaby
Помогите с решением задачи в работе скрипта. При переходе на другую страницу нет отображения данных из таблицы Mysql, только первые записи. Как отобразить следующие записи?

Скрипт

<?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

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.