|
|
|
новичок
      
участник
Last Login: 09.02.2008 6:21
Сообщ.: 2,
Visits: 17
|
|
Доброго всем времени суток! Скачал здесь http://softtime.ru/info/articlephp.php?id_article=33 скрипт постраничного вывода из БД. Теперь он выглядит так: <?php // Устанавливаем соединение с базой данных include "config_mysql.php"; //переменная $group_production = (isset($_GET['group_production']))?$_GET['group_production']:'ГСО(Государственные Стандартные Образцы)'; ?> <style> .cell_1{background:99FFCC} .cell_2{background:FFFFCC} </style> <table border='1' cellspacing='1' cellpadding='1' class='3'> <tr> <td class='3' align='center'> <b>Наименование товара</b> </td> </tr> <?php // Переменная хранит число товарных позиций выводимых на странице $num = 50; // Извлекаем из URL текущую страницу $page = (isset($_GET['page'])); // Определяем общее число товарных позиций в базе данных $result = mysql_query("SELECT COUNT(*) FROM tovary"); $result = mysql_fetch_row($result); // Находим общее число страниц $total = intval(($result[0] - 1) / $num) + 1; // Определяем начало товарных позиций для текущей страницы $page = intval($page); // Если значение $page меньше единицы или отрицательно // переходим на первую страницу // А если слишком большое, то переходим на последнюю if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; // Вычисляем начиная к какого номера // следует выводить товарные позиции $start = $page * $num - $num; // Выбираем $num сообщений начиная с номера $start $result = mysql_query("SELECT * FROM tovary WHERE group_production = 'ГСО(Государственные Стандартные Образцы)' LIMIT $start,$num"); // В цикле переносим результаты запроса в массив $i = 0; while ($arResult = mysql_fetch_array($result)): $i++; ?> <tr class='cell_<?=($i%2)+1;?>'> <td> <?=$arResult['name'];?> </td> </tr> <?endwhile;?> </table> <?php // Проверяем нужны ли стрелки назад if ($page != 1) $pervpage = '<a title="В начало" class="1" href="http://www.test.ru/State_Standard_Samples.php?page=1"><<</a> <a class="1" href="http://www.test.ru/State_Standard_Samples.php?page='. ($page - 1) .'"><Предыдущая</a> '; // Проверяем нужны ли стрелки вперед if ($page != $total) $nextpage = ' <a class="1" href="http://www.test.ru/State_Standard_Samples.php?page='. ($page + 1) .'">Далее></a> <a title="В конец" class="1" href="http://www.test.ru/State_Standard_Samples.php?page=' .$total. '">>></a>'; // Находим две ближайшие страницы с обоих краев, если они есть if($page - 2 > 0) $page2left = ' <a class="1" href="http://www.test.ru/State_Standard_Samples.php?page='. ($page - 2) .'">'. ($page - 2) .'</a> | '; if($page - 1 > 0) $page1left = '<a class="1" href="http://www.test.ru/State_Standard_Samples.php?page='. ($page - 1) .'">'. ($page - 1) .'</a> | '; if($page + 2 <= $total) $page2right = ' | <a class="1" href="http://www.test.ru/State_Standard_Samples.php?page='. ($page + 2) .'">'. ($page + 2) .'</a>'; if($page + 1 <= $total) $page1right = ' | <a class="1" href="http://www.test.ru/State_Standard_Samples.php?page='. ($page + 1) .'">'. ($page + 1) .'</a>'; // Вывод меню echo $pervpage.$page2left.$page1left.'<b>['.$page.']</b>'.$page1right.$page2right.$nextpage; ?>
Проблема в следующем: при переходе по ссылкам панели навигации на всех страницах одно и тоже - выводятся первые 50 строк из БД, да и сама панель навигации везде одинаковая: 1|2|3|> >> , т.е. везде активна 1 страница. Пожалуйста, помогите "чайнику" решить эту проблему!!!
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Похоже ошибка в этой строке: $page = (isset($_GET['page'])); Если ты таким образом пытался избежать предупреждения об обращении к несуществующей переменной, то эту строку следовало записать, например, так: $page = isset($_GET['page']) ? $_GET['page'] : 1;
|
|
|
|
|
новичок
      
участник
Last Login: 09.02.2008 6:21
Сообщ.: 2,
Visits: 17
|
|
| Да действительно проблема оказалась именно в этом, большое Тебе спасибо!
|
|
|
|