[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не работает постраничная навигация
mavspb
Добрый день всем...

Есть куча советов как вывести постранично из базы, много просмотрел...
Но во всех примерах: что-то не работает.
Остановился на одном, подредактировал под себя, но постраничная навигация не работает, все время отображается только та страница, которая указана в : $page =1
Блок:
if (empty($_get['page']) || ($_get['page'] <= 0)) {
$page =1;
} else {
$page = (int) $_get['page']; // Считывание текущей страницы
}


В ссылку номер страницы вставляется, например http://www.test33.ru/primer1.php?page=5 , но всеравно отображается страница №1.

Если кто подскажет- буду благодарен.

code:
--------------
<?php
function
yandex_link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - это количество отображаемых ссылок;
// нагляднее будет, когда это число будет парное
// Если страница всего одна, то вообще ничего не выводим

if ($pages_count == 1) return false;
$sperator = ' '; // Разделитель ссылок; например, вставить "|" между ссылками
// Для придания ссылкам стиля

$style = 'style="color: #808000; text-decoration: none;"';
$begin = $page - intval($show_link / 2);
unset($show_dots); // На всякий случай smile.gif
// Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц

if ($pages_count <= $show_link + 1) $show_dots = 'no';
// Вывод ссылки на первую страницу
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_server['php_self'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
{
$i = $begin + $j; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл для того,
// чтобы количество ссылок было постоянным

if ($i < 1) continue;
// Подобное находится в верхнем цикле
if (!isset($show_dots) && $begin > 1) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
// Номер ссылки перевалил за возможное количество страниц
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
// Если номер ссылки не равен кол. страниц и это не последняя ссылка
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
// Вывод "..." в конце
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}

// Вывод ссылки на последнюю страницу
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$pages_count.'> >| </a>';
}
return true;
} // Конец функции

// Подключение к базе данных

mysql_connect('localhost', 'root', '') or die('error! Нет соединения с сервером mysql!');
mysql_select_db('proba1') or die('error! Нет соединения с базой данных!');
$table = "itog2";
// Подготовка к постраничному выводу
$perpage = 10; // Количество отображаемых данных из БД

if (empty($_get['page']) || ($_get['page'] <= 0)) {
$page =1;
} else {
$page = (int) $_get['page']; // Считывание текущей страницы
}
// Общее количество информации
$count = mysql_numrows(mysql_query('select * from itog2')) or die('error! Записей не найдено!');

$pages_count = ceil($count / $perpage); // Количество страниц


// Если номер страницы оказался больше количества страниц

if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
echo '<br>';
echo "Начальная позиция, для запроса к БД: ".$start_pos ."";
echo '<br>';
echo "Считывание текущей страницы: ".$page ."";
// Вызов функции, для вывода ссылок на экран
// yandex_link_bar($page, $count, $pages_count, 10);


// Вывод информации из базы данных

echo '<p><b>Постраничный вывод информации</b></p>';
$result = mysql_query('select * from itog2 limit '.$start_pos.', '.$perpage) or die('error!');

/* Выводим данные из таблицы */
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>ID</b></td>
<td align=
\"center\"><b>Метро</b></td>
</tr>
"
);

/* Цикл вывода данных из базы конкретных полей */
while ($row = mysql_fetch_array($result))
{
echo "<tr>\n";
echo "<td>".$row['nov_id']."</td>\n";
echo "<td>".$row['rayon']."</td>\n";
echo "<td>".$row['metro']."</td>\n";
echo " </tr>\n";
}

echo ("</table>\n");
// Вызов функции, для вывода ссылок на экран
yandex_link_bar($page, $count, $pages_count, 10);
?>




Спустя 2 минуты, 13 секунд (27.06.2010 - 15:52) twin написал(а):
Названия переменных в PHP регистрозависимы.

Спустя 2 часа, 52 минуты, 29 секунд (27.06.2010 - 18:45) mad/crs написал(а):
И сколько я знаю содержимое атрибута href заключают в кавычки.
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';

надобы изменить на
echo ' <a '.$style.' href="'.$_SERVER['PHP_SELF'].'?page='.($i+1).'"><b>...</b></a> ';

Спустя 46 минут, 4 секунды (27.06.2010 - 19:31) mavspb написал(а):
Цитата (mad/crs @ 27.06.2010 - 15:45)
И сколько я знаю содержимое атрибута href заключают в кавычки.
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';

надобы изменить на
echo ' <a '.$style.' href="'.$_SERVER['PHP_SELF'].'?page='.($i+1).'"><b>...</b></a> ';

Спасибо за совет. Изменил, но все так и осталось: при нажатии на список страниц 1 2 3 4 адрес браузеру передается http://www.test33.ru/primer1.php?page=3 но отображается все равно одна страница.

Спустя 25 секунд (27.06.2010 - 19:31) vagrand написал(а):
mavspb
$_get замени на $_GET, как и советовал twin

Спустя 19 минут, 54 секунды (27.06.2010 - 19:51) mavspb написал(а):
Цитата (vagrand @ 27.06.2010 - 16:31)
mavspb
$_get замени на $_GET, как и советовал twin

:-) пока читал куда послал twin- пришел этот совет, я, конечно и там прочитал, и признаюсь: это я менял еще до вопроса сюда..., глупо, конечно, но когда не находишь ответа, то начинаешь пробовать самые идиотские варианты ( это я про себя): и большими и маленькими буквами и перепечатыванием кода "строго на латинице" (можно подумать, что вдруг перешел на кириллицу и "выборочно" написал а,с, о и т.д. на кириллице вместо латиницы))
Поменял еще раз- все как прежде страница не обновляется, хотя адрес передается браузеру. При нажатии на любую ссылку (номера страницы) получаю: Начальная позиция, для запроса к БД: 0
Считывание текущей страницы: 1
Это я уже решил проверить, а что собственно происходит.

Спустя 1 час, 25 минут, 59 секунд (27.06.2010 - 21:17) mavspb написал(а):
twin
Большое СПАСИБО, я понимаю, что это нарушение этикета (насчет заглавных букв), но, думаю, что в данном случае это приемлемо. Я сам всегда всем советую: внимательно (!!!) читайте и исправляйте, что необходимо! А сам: в двух местах исправил регистр переменных, а остальных "пропустил". И начал писать: все пробовал- ничего не помогает". Еще раз спасибо!. Приятно было получить четкий ответ, к сожалению часто бывает по другому.

и vagrand спасибо! Без "пальцев" мягко указал на путь решения. Всем спасибо.


_____________
Каждый, кто написал "Hello, World!": считает себя Расмусом Лердорфом..., я тожжжже так считал.....
Быстрый ответ:

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