Помогите с решением задачи в работе скрипта. При переходе на другую страницу нет отображения данных из таблицы Mysql, только первые записи. Как отобразить следующие записи? Скрипт Код (Text): <?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
79 строка попробуй так или поменЯй местами $quantity, $list $result = mysql_query("SELECT * FROM contacts LIMIT $quantity, $list;");
Я думая проблема в передачи значения page на следующую страницу Добавлено спустя 17 минут 8 секунд: Разобрался не хватало $page=$_GET['page'];