<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Иннер Джоин, должен вытащить!
12.10.2013 01:25:59 Иннер Джоин, должен вытащить! Сообщение #1
wanderer

wanderer

Продвинутый

Продвинутый

Дата регистрации:
04.07.2012 12:02:14

Сообщений: 56

Михаил! Есть такой запрос!

$q_tovar_one = mysql_query("SELECT
`$tovar`.`id`,
`$tovar`.`img`,
`$tovar`.`description`, `$tovar`.`cena`,
`$tovar`.`title`,
`$tovar`.`count`,
`$tovar_columns`.`id_tovar`,
`$tovar_columns`.`title` AS tovar_column_title,
`$tovar_columns`.`value`
FROM `$tovar` INNER JOIN `$tovar_columns`
ON `$tovar`.`id`=`$tovar_columns`.`id_tovar`
WHERE `$tovar`.`id`='$id'";
while($r_tovar = mysql_fetch_assoc($q_tovar_one)){

тело цикла

}

Этот запрос должен выводить информацио о товаре, а еще я хочу сделать в этом же запросе(то есть для чего я и написал тут иннер джоин) чтобы вытаскивались дополнительные поля для конкретного товара(для каждого товара поля разные), но в теле этого же цикла идет подключение и фотографий для этого же товара, то есть цикл в цикле. Но если будет цикл в цикле то фотографии будут извлекаться столько раз сколько записей в дополнительных полях - $tovar_columns. Как избежать повторений фотографии при этом чтоб извлекались все дополнительные поля(если их много)?!

Это возможно сделать? не могу додуматься как это реализовать, логика не ясна.
Профиль Ответить
12.10.2013 13:08:52 Иннер Джоин, должен вытащить! Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Никак это не сделать, то, что у записей одинаковые фотографии есть не означает, что у одной записи стоит делать её выборку, а у другой нет. Это будет противоречить самому принципу базы данных.
Профиль Ответить
12.10.2013 14:42:26 Иннер Джоин, должен вытащить! Сообщение #3
wanderer

wanderer

Продвинутый

Продвинутый

Дата регистрации:
04.07.2012 12:02:14

Сообщений: 56

То есть желать цикл в цикле? Это будет считаться грамотным с точки зрения грамотности кода? Или как такую задачу решил бы ты?
Профиль Ответить
12.10.2013 23:08:10 Иннер Джоин, должен вытащить! Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Не цикл в цикле, а сразу вытащить все записи, у многих из которых будет одна и та же фотография.
Профиль Ответить
12.10.2013 23:48:17 Иннер Джоин, должен вытащить! Сообщение #5
wanderer

wanderer

Продвинутый

Продвинутый

Дата регистрации:
04.07.2012 12:02:14

Сообщений: 56

Но мне не надо так, у одного товара есть к примеру три фотографии, а на страничке мне надо вывести всего 1 товар, но со всеми фотографиями которые есть в соседнем столбце соединенным с таблицей товаров!

Но так же у этого товара в отдельную таблицу вынесены параметры товара, и если я сдела....


осинило, и я понял=))) тройной иннер джоин с тройной связью и просто указываем условие где id товара. Ну и конечно же выводим все в цикле. НО
если к примеру количество фотографий у меня меньше чем количество строк описания товара, то outer join не пойдет, просто inner join нужно?
Профиль Ответить
13.10.2013 11:40:00 Иннер Джоин, должен вытащить! Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Пойдёт и INNER JOIN.
Профиль Ответить