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

Форум MySQL

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

 

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

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

тема: Постраничный вывод при условии WHERE в запросе
 
 автор: Mefisto84   (24.05.2006 в 20:59)   письмо автору
 
 

Здравствуйте! Скажите пожалуйста как можно сделать постраничный вывод, если изначально в запросе есть условие WHERE. Просто я просмотрел очень много тем по поводу постраничного вывода, и не нашел примера где бы использовался WHERE. То есть на всех примерах которые есть для подсчета общего количества записей в таблице применяется запрос типа Select from table, и сразу понятно сколько там записей. А если в конце еще и WHERE? Как тогда быть?
Вот код к которому я хочу сделать постраничный вывод.

if($_GET['id_catalog'])
  {
   echo "<hr class=\"r\">";
   $sql3="SELECT *FROM product WHERE id_catalog=".$_GET['id_catalog']."";
   $s3=mysql_query($sql3);
   echo "<table border=\"1\" width=\"100%\"align=\"center\">";
   echo "<tr>";
   $td=0;
   while($i=mysql_fetch_array($s3))
        {
         $image = "select * from image where id=".$i['id_product']."";
         $r = mysql_query($image);
         $num_r = mysql_num_rows($r);
         $kol+=$num_r;
         if(mysql_num_rows($r) > 0)
           { 
            while($par=mysql_fetch_array($r))
                 {
                  $photo=$par['photo'];
                  echo "<td width=\"50%\"><table  border=\"1\" width=\"100%\" bordercolordark=\"white\" bordercolorlight=\"black\"><tr align=\"left\"><td width=\"150\"><a href=\"modules.php?name=Gallery&file=download&photo=$par[photo]&id_product=$i[id_product]\" target=\"_blank\"><img src=\"modules/Photo/images/$par[photo]\" width=\"150\" height=\"150\" border=\"0\" alt=\"Нажмите для просмотра\"></a></td><td><span class=gal>Район:</span>".$i['district']."<br><span class=gal>Улица:</span>".$i['address']."<br><span class=gal>Описание:</span>".$i['note']."<br><span class=gal>Цена, ($):</span>".$i['price']."<br><b><a href=\"modules.php?name=Poisk&file=detail&id_product=$i[id_product]\" target=\"_blank\">ПОДРОБНАЯ ИНФОРМАЦИЯ</a></b></td>"
                      ."</tr></table></td>";
                  $td++;
                  if ($td==2)
                    {
                    echo "</tr>";
                    $td=0;
                    }
                 }
           }
        }
   echo "</table>";
  }

Заранее благодарен.

   
 
 автор: cheops   (24.05.2006 в 22:03)   письмо автору
 
   для: Mefisto84   (24.05.2006 в 20:59)
 

А в чём сложность - при постраничном выводе работает только конструкция LIMIT - WHERE-условие не затрагивается (можно его писать, можно не писать - на код постраничной навигации это не повлияет).

   
 
 автор: Mefisto84   (25.05.2006 в 10:49)   письмо автору
 
   для: cheops   (24.05.2006 в 22:03)
 

Ну как же? А как мне тогда узнать сколько всего записей получается? Ведь запрос то с условием where и каждый раз разный, он же в цикле. И к примеру я хочу что бы выводилось по 0 фотографий на страницу, а у меня для одного id_product к примеру 5 фоток, а для второго 7, как сделать так что бы оставшиеся 2 уходили на творую страницу? И как их посчитать что их 12 к примеру?

   
 
 автор: cheops   (25.05.2006 в 12:29)   письмо автору
 
   для: Mefisto84   (25.05.2006 в 10:49)
 

А у вас два цикла.... Тогда вот что не понятно - что делает скипт? Т.е. что выводит первый цикл и что второй? И для какого из них нужна постраничная навигация?

   
 
 автор: Mefisto84   (25.05.2006 в 14:10)   письмо автору
 
   для: cheops   (25.05.2006 в 12:29)
 

Первый цикл выбирает фотографии относящиеся к какому-то определенному id_product. А второй строит таблицу в которую помещаются фотографии и небольшое описание. Таблица: в строке помещается две фотографии, затем образуется следующая строка и т.д. Мне нужна постраничная навигация вообще ко всему скрипту. То есть например надо что бы на страницу выводилось по 15 фотографии, ну или для красоты(что бы строки были полными) по 16 фотографий. Вот как это сделать?

   
 
 автор: cheops   (25.05.2006 в 22:28)   письмо автору
 
   для: Mefisto84   (25.05.2006 в 14:10)
 

Тогда всё нормально, у вас будет просто постраничная навигация по внешнему циклу. Т.е. подчёт общего числа позиций будет осуществляться по циклу
<?php
 $sql3
="SELECT COUNT(*) FROM product WHERE id_catalog=".$_GET['id_catalog']."";
?>

а вывод текущей позиции при помощи цикла
<?php
 $sql3
="SELECT COUNT(*) 
               FROM product 
               WHERE id_catalog="
.$_GET['id_catalog']."
               LIMIT 
$begin$start";
?>

   
 
 автор: Mefisto84   (26.05.2006 в 16:32)   письмо автору
 
   для: cheops   (25.05.2006 в 22:28)
 

так не получается, потому что у одного id_product может быть несколько фотографий. То есть при запросе из таблицы продукт общее количество может быть равно 4, а дальше при запросе к таблице image уже 7 записей.

   
 
 автор: Mefisto84   (28.05.2006 в 12:49)   письмо автору
 
   для: Mefisto84   (26.05.2006 в 16:32)
 

Ну что никаких мыслей что ли нет? Не может быть, не верю :-) Как же все таки сделать мне постраничный вывод для галереи?

   
Rambler's Top100
вверх

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