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> Что и где нужно исправить? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти