<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

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

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

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

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

Какая тема Вас интересует больше?

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

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

wanderer

Продвинутый

Продвинутый

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

Сообщений: 55

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

$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

Сообщений: 55

То есть желать цикл в цикле? Это будет считаться грамотным с точки зрения грамотности кода? Или как такую задачу решил бы ты?
Профиль
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

Сообщений: 55

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

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


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

Admin

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

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

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

Сообщений: 3063

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