X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как записать несколько значений в одну ячейку
bo4kov
bo4kov
Topic Starter сообщение 30.5.2015, 18:18; Ответить: bo4kov
Сообщение #1


Здравствуйте.Не могу сделать так, чтобы вот этот вот под запрос

, (SELECT `title` FROM `shop_author` WHERE `id` IN('1','4')) AS `title_author`

записывал в ячейку 'title_author' два значения через запятую. (Где 1 и 4 - это id авторов статей. Например 1 - Иванов Серёга, 4 - Петров Антоха). Этих id может быть неограниченное количество.

Вот мой весь запрос:

$query = "(SELECT *, (SELECT `title` FROM `shop_author` WHERE `id` IN('1','4')) AS `title_author`
FROM `shop_articles` AS `a`
WHERE `a`.`id` IN(
SELECT `art_id` FROM `shop_art_cat` WHERE `cat_id` = $category))";

Как мне сделать чтобы с помощью одного данного запроса в ячейку 'title_author' поместить имена авторов через запятую (хотя не важно как, главное чтобы два автора были в одной ячейке)???

У меня данный запрос помещает только одного первого автора, как исправить?


Сообщение отредактировал bo4kov - 30.5.2015, 18:18
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
miketomlin
miketomlin
сообщение 30.5.2015, 21:59; Ответить: miketomlin
Сообщение #2


GROUP_CONCAT(`title`)?

Не понял, в чем смысл выбирать авторов 1, 4.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 31.5.2015, 11:34; Ответить: ixman
Сообщение #3


bo4kov, только через цикл while 
Хотя сразу в запрос не въехал, по сути у вас два массива, такое вряд ли возможно, тут уже нужно наверное  группировку использовать
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Slava1988
Slava1988
сообщение 1.6.2015, 13:22; Ответить: Slava1988
Сообщение #4


Лучше не городить таких ужасов, сделать связующую таблицу и использовать ее в паре с LEFT JOIN
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bo4kov
bo4kov
Topic Starter сообщение 1.6.2015, 18:25; Ответить: bo4kov
Сообщение #5


miketomlinGROUP_CONCAT(`title`) не работает, выдает ошибку.


Ixman, можно по подробнее про группировку? а то я ни когда с ней не сталкивался.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 1.6.2015, 20:43; Ответить: ixman
Сообщение #6


bo4kov, мне сложно представить что там должно у вас получиться, поэтому тяжело сказать. А группировка работает когда есть одинаковые результаты, она их группирует по указанной ячейки, то есть убирает лишнее
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 1.6.2015, 21:31; Ответить: fedornabilkin
Сообщение #7


Я обычно в таких случаях добавляю еще одну таблицу и туда пишу.
Например:
shop_articles, id_autor
Потом джойном связываешь данные таблицы статей и данные таблицы авторов
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bo4kov
bo4kov
Topic Starter сообщение 2.6.2015, 15:37; Ответить: bo4kov
Сообщение #8


Я пробовал LEFT JOIN. Создал связывающую таблицу статей и авторов, объединил таблицы авторов и статей, сделал выборку. Но если у статьи два автора, тогда мне запрос выводит эту статью два раза, а нужно один, так и должно быть или это что-то напутал?  
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Serg44
Serg44
сообщение 2.6.2015, 22:01; Ответить: Serg44
Сообщение #9


(bo4kov @ 30.5.2015, 20:18) *
Как мне сделать чтобы с помощью одного данного запроса в ячейку 'title_author' поместить имена авторов через запятую (хотя не важно как, главное чтобы два автора были в одной ячейке)???

Ячейка должна иметь тип text в неё можно записать сколько угодно значений, значения надо разделять символом например ":" После выборки из базы значения придётся обработать, с помощью PHP функцией  explode. Лично я использую подобный алгоритм, это лучше чем делать связанные таблицы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 3.6.2015, 10:14; Ответить: fedornabilkin
Сообщение #10


Serg44, в таком случае проще сериализовать массив, записать в БД и потом ансериализовать.
(bo4kov @ 2.6.2015, 17:37) *
тогда мне запрос выводит эту статью два раза

Что мешает сделать проверку на дубли? Или я не совсем понял конечную задачу. 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1117 26.3.2024, 14:13
автор: knezevolk
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
12 uahomka 2285 25.3.2024, 6:52
автор: Skyworker
Открытая тема (нет новых ответов) Как отозвать банковский платеж фрилансеру?
28 metvekot 3912 25.3.2024, 6:34
автор: Skyworker
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
23 freeax 3636 24.3.2024, 20:55
автор: Liudmila
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1929 23.3.2024, 7:41
автор: Room


 



RSS Текстовая версия Сейчас: 28.3.2024, 18:28
Дизайн