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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите написать правильную логику работы вывода данных

Сообщения:  [1-5] 

 
 автор: TetRiska   (20.08.2009 в 00:38)   письмо автору
 
   для: heed   (19.08.2009 в 18:57)
 

Решил проблему :) Что значит пойти подышать свежим воздухом. Проблема была в том что не поместил в цикл, потом если поместить в цикл, то нужно без формы, ибо когда прокутит в цикле жаба скрипт откажется открывать форму и тд..Вобщем привожу изменения :)

Было:

$res2 = mysql_query("SELECT * FROM `".PREFIX."dphoto` WHERE id_category = ".$catrow['id']."")    
or die ("Ошибка запроса №2 : magazine/magazine.php" . mysql_error()); 
                    while($catrow2 = mysql_fetch_assoc($res2))
                {
                    $photo .= "<tr>";
                    $photo .= "<td>";
                    $photo .= $catrow2['dphoto'];
                    $photo .= "</td>";
                    $photo .= "</tr>";
                   
                
                }
                 $goods .= "<form action='' method='post' id='albom".$b."' style='display:none'>
                   <table align='left' style='margin-top:5px' border='0' cellspacing='0' cellpadding='0'>".$photo."</table>
                </form>";


Стало:

$goods .= "<form action='' method='post' id='albom".$b."' style='display:none'><table align='left' style='margin-top:5px' border='0' cellspacing='0' cellpadding='0'>";
                
                $res2 = mysql_query("SELECT * FROM `".PREFIX."dphoto` WHERE id_category = ".$catrow['id']."")    
or die ("Ошибка запроса №2 : magazine/magazine.php" . mysql_error());
                $catrow2 = mysql_fetch_array($res2);
                
                if($catrow2['dphoto'] == "")
                {
                    $goods .= "<tr>";
                    $goods .= "<td>";
                    $goods .= "Дополнительные фотографии отсутствуют.";
                    $goods .= "</td>";
                    $goods .= "</tr>";
                }
                else
                {
                    $res3 = mysql_query("SELECT * FROM `".PREFIX."dphoto` WHERE id_category = ".$catrow['id']."")    
or die ("Ошибка запроса №3 : magazine/magazine.php" . mysql_error()); 

                    while($catrow3 = mysql_fetch_assoc($res3))
                        {
                            $goods .= "<tr>";
                            $goods .= "<td>";
                            $goods .= $catrow3['dphoto'];
                            $goods .= "</td>";
                            $goods .= "</tr>";                 
                        }
                }
                
                $goods .= "</table></form>";

  Ответить  
 
 автор: heed   (19.08.2009 в 18:57)   письмо автору
 
   для: TetRiska   (19.08.2009 в 18:14)
 

Description
int mysql_num_rows ( resource $result )

Retrieves the number of rows from a result set. This command is only valid for statements like SELECT or SHOW that return an actual result set. To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or DELETE query, use mysql_affected_rows().

Parameters
result
The result resource that is being evaluated. This result comes from a call to mysql_query().

Return Values
The number of rows in a result set on success, or FALSE on failure.

Examples
Example #1 mysql_num_rows() example
<?php
$link 
mysql_connect("localhost""mysql_user""mysql_password");
mysql_select_db("database"$link);

$result mysql_query("SELECT * FROM table1"$link);
$num_rows mysql_num_rows($result);

echo 
"$num_rows Rows\n";
?>

  Ответить  
 
 автор: TetRiska   (19.08.2009 в 18:14)   письмо автору
 
   для: heed   (19.08.2009 в 17:56)
 

>чтото както не логично,
>>для первого изделия есть доп. картинки, а для других нету (в базе), но выводить для всех трех изделий доп. картинки первого
>
>наверное перед вторым циклом нужно проверить mysql_num_rows()
> если 0, не делать $photo ='';
>и не запускать цикл while($catrow2 = mysql_fetch_assoc($res2))
>и будет использоваться старое $photo , даже если это пустая переменная
>
>. если запрос вернул не 0 записей , делать $photo =''; и запускать цикл
>//не увидел в коде тега <img> для которого это $catrow2['dphoto']

mysql_num_rows() - т.е. есть ли фотки для определенного изделия? можно поподробней?

насчет того что не увидели img пока не столь важно :) мне достаточно того что выводит пути к рисункам везде :(

  Ответить  
 
 автор: heed   (19.08.2009 в 17:56)   письмо автору
 
   для: TetRiska   (19.08.2009 в 17:02)
 

чтото както не логично,
>для первого изделия есть доп. картинки, а для других нету (в базе), но выводить для всех трех изделий доп. картинки первого

наверное перед вторым циклом нужно проверить mysql_num_rows()
если 0, не делать $photo ='';
и не запускать цикл while($catrow2 = mysql_fetch_assoc($res2))
и будет использоваться старое $photo , даже если это пустая переменная

. если запрос вернул не 0 записей , делать $photo =''; и запускать цикл
//не увидел в коде тега <img> для которого это $catrow2['dphoto']

  Ответить  
 
 автор: TetRiska   (19.08.2009 в 17:02)   письмо автору
7.3 Кб
 
 

Есть таблица, которая циклически выводиться, в ней отображаются краткие х-ки изделия...Ниже есть ссылки по которым мы можем отобразить доп. формы: заказать, альбом, комменты. Проблема в отображении всех доп. картинок в альбоме (с комментами аналогично). Т.е. для первого изделия есть доп. картинки, а для других нету (в базе), но выводить для всех трех изделий доп. картинки первого. Привожу пример кода и ссылку на сайт, где в теством режиме можно увидить работу. Прошу помочь разобраться.

Ссылка на сайт - http://furmanidpua.s13.yourdomain.com.ua/magazine

Приведу структуру БД, с теми участками, с которыми идет работа:

CREATE TABLE `furmani_category` (
  `id` int(5) NOT NULL auto_increment,
  `id_catalog` int(3) NOT NULL,
  `photo` varchar(100) NOT NULL,
  `photo_b` varchar(100) NOT NULL,
  `title` varchar(100) NOT NULL,
  `text` text NOT NULL,
  `presence` int(1) default NULL,
  `price` int(4) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

INSERT INTO `furmani_category` VALUES (1, 15, '/uploads/catalog/15/1/thumb/1.jpg', '/uploads/catalog
/15/1/1.jpg', 'Красный лаковый пояс', 'Изделие изготовлено из высококачественной кожи. На пояс 
нанесен узор красного цвета, что придает поясу элегантности. Размеры пояса 120см х 15см.', 0, 1159);
INSERT INTO `furmani_category` VALUES (2, 15, '/uploads/catalog/15/2/thumb/1.jpg', '/uploads/catalog
/15/2/1.jpg',  'Коричневый пояс', '', 0, 1502);
INSERT INTO `furmani_category` VALUES (3, 15, '/uploads/catalog/15/3/thumb/1.jpg', '/uploads/catalog
/15/3/1.jpg', 'Белый лаковый пояс', '', 1, 953);


CREATE TABLE `furmani_dphoto` (
  `id` int(11) NOT NULL auto_increment,
  `id_category` int(5) NOT NULL,
  `dphoto` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

INSERT INTO `furmani_dphoto` VALUES (1, 1, '/uploads/catalog/15/1/thumb/photo_1.jpg');
INSERT INTO `furmani_dphoto` VALUES (2, 1, '/uploads/catalog/15/1/thumb/photo_2.jpg');
INSERT INTO `furmani_dphoto` VALUES (3, 1, '/uploads/catalog/15/1/thumb/photo_3.jpg');

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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