Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничный вывод из БД
 
 автор: mjc66   (31.08.2007 в 20:48)   письмо автору
 
 

Заточил скрипт постраничного вывода по запросу из БД для определенной группы товара. К нему также добавлен скрипт панели постраничной навигации. Всего для этой группы товара предполагается 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>

Помогите исправить!

   
 
 автор: Trianon   (03.09.2007 в 22:26)   письмо автору
 
   для: mjc66   (31.08.2007 в 20:48)
 

строку $page = (isset($_GET['page']));
нужно исправить на
$page = isset($_GET['page']) ? $_GET['page']) : 1;   

либо на
$page = @$_GET['page'];

   
 
 автор: mjc66   (04.09.2007 в 19:29)   письмо автору
 
   для: Trianon   (03.09.2007 в 22:26)
 

Спасибо Trianon, уже догадался!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования