Перейти к содержимому

Сервис обмена электронных валют


Как записать несколько значений в одну ячейку

#11 bo4kov

bo4kov
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 0
0

Отправлено 05 Июнь 2015 - 11:30


Ячейка должна иметь тип text в неё можно записать сколько угодно значений, значения надо разделять символом например ":"

 

Но как мне это сделать в одном запросе? Мне что нужно в БД создавать еще одну ячейку 'title_author' в таблице 'shop_articles'? Но если мне нужно будет вытаскивать например и текст описание автора, мне придется еще одну ячейку создавать  в БД ??? что-то это не то

@fedornabilkin, Проверку на дубли сделать не проблема, но тогда id статей перераспределяются, а мне нужно id то, что в БД хранится, для формирование ссылки. 


  • 0

#12 miketomlin

miketomlin
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 05 Июнь 2015 - 21:55

Нормально объясните, что у вас есть и что нужно получить. Мой вопрос про 1, 4 так и остался без ответа. "Не работает, выдает ошибку" – тоже не ответ, а то я могу сказать, что у меня работает и не выдает ошибку.


  • 0

#13 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 05 Июнь 2015 - 23:03

Нормально объясните, что у вас есть и что нужно получить.

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

@bo4kov, И до сих пор не могу понять как у статьи два автора?


  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#14 bo4kov

bo4kov
    Topic Starter
  • Пользователь
  • 26 сообщений
  • Репутация: 0

Отправлено 06 Июнь 2015 - 15:02

В общем объясняю все заново.

 

У меня есть три таблицы: 

1. shop_articles (с полями -  id, title, text, img) - здесь хранятся статьи 

2. shop_author  (с полями -  id, title, text, img - здесь хранятся авторы 

3. shop_art_author (с полями - id, art_id, author_id - звязывающая таблица статей и авторов

 

Задача - мне нужно вытащить имя автора(title), для каждой статьи.

Напоминаю, что авторов у одной статьи может быть много, как 1 так и 100 (количество не известно). 

 

Написал вот такой код:

$query = "SELECT *, (SELECT `title` FROM `shop_author` WHERE `id` IN
(SELECT `author_id` FROM `shop_art_author` WHERE `art_id`=`a`.`id`)) AS `title_author`
FROM `shop_articles` AS `a";

$res = mysql_query($query);

    while($row = mysql_fetch_assoc($res)){
        $products[] = $row;
    }
    
    return $products; 

В phpmyadmin такой запрос выдает ошибку - Subquery returns more than 1 row(Вложенный запрос возвращает более 1 строки).

 

В принципе возвращает по идее то, что мне и нужно (массив), но как его запихнуть в ячейку `title_author`?  

 

 

@miketomlin, авторы 1 и 4 (id авторов)  - это цифры взятые просто для примера, в место них могут быть абсолютно другие цифры и абсолютно другое количество этих цифр.

 

Насчет GROUP_CONCAT - все таки получил то, что нужно было, с помощью такого запроса:

$query = "SELECT *, (SELECT GROUP_CONCAT(`title`) FROM `shop_author` WHERE `id` IN(SELECT `author_id` FROM `shop_art_author` WHERE `art_id`=`a`.`id`)) AS `title_author`
FROM `shop_articles` AS `a`";


@fedornabilkin,

И до сих пор не могу понять как у статьи два автора?

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

 

 

ВСЕМ СПАСИБО! ЗАДАЧА РЕШЕНА.


Сообщение отредактировал bo4kov: 06 Июнь 2015 - 15:03

  • 0


Оформление форума – IPBSkins.ru