mjc66 Опубликовано 31 августа, 2007 Жалоба Поделиться Опубликовано 31 августа, 2007 Заточил скрипт постраничного вывода по запросу из БД для определенной группы товара. К нему также добавлен скрипт панели постраничной навигации. Всего для этой группы товара предполагается 6-ть страниц с 50-ю выводимыми товарными позициями. Для первой страницы все хорошо-товар выводится правильно первые 50-т наименований, да и панель навигации отображается правильно. А вот с остальными просто беда- на все оставшиеся 5-ть страниц выводятся одни и те же первые 50-т наименований. Не клонировать же в самом деле скрипт 6-ть раз изменяя LIMIT 0,50 LIMIT 50,50... LIMIT 300,50. Вот скрипт: <?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> Что и где нужно исправить? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.