За последние 24 часа нас посетили 16724 программиста и 1612 роботов. Сейчас ищет 1371 программист ...

Объединить ячейки столбца

Тема в разделе "Прочие вопросы по PHP", создана пользователем Merlak, 5 фев 2015.

  1. Merlak

    Merlak Активный пользователь

    С нами с:
    25 апр 2009
    Сообщения:
    10
    Симпатии:
    0
    Просмотрел несколько ответов на разных форумах. так и не понял.

    Есть у меня три таблицы:
    se_music (столбцы: music_tittle, music_id, music_user_id)
    se_profilevalues (столбцы: profilevalue_user_id, profilevalue_17, profilevalue_18 и т.д. )
    se_users (столбцы: user_id, user_lname, user_username, user_password и т.д.)

    Одним запросом я вывожу общую таблицу где music_tittle имеет несколько ячеек от одного пользователя (user_id).

    Вот запрос:

    Код:
    Код (Text):
    1. SELECT
    2.       se_users.user_id,  se_users.user_lname,  se_profilevalues.profilevalue_17, se_music.music_title
    3.  
    4. FROM se_profilevalues
    5.  
    6.     LEFT JOIN se_users ON se_profilevalues.profilevalue_user_id=se_users.user_id
    7.     LEFT JOIN se_levels ON se_levels.level_id=se_users.user_level_id
    8.     LEFT JOIN se_music ON se_profilevalues.profilevalue_user_id=se_music.music_user_id
    9.  
    10. WHERE
    11.     se_users.user_verified='1'
    12. AND se_users.user_enabled='1'
    13. AND (se_users.user_search='1' OR se_levels.level_profile_search='0' )  ";
    Я никак не могу понять как мне сделать чтобы названия(music_tittle) загруженных песен каждого пользователя были в одной ячейки

    Нашёл статью одну. По ней добавил вот такую строку:

    GROUP_CONCAT(`music_title`) as `music_title`



    Код (Text):
    1. SELECT
    2. se_users.user_id, se_users.user_lname, se_profilevalues.profilevalue_17, se_music.music_title,
    3. GROUP_CONCAT(`music_title`) as `music_title`
    4. FROM se_profilevalues
    5.  
    6. LEFT JOIN se_users ON se_profilevalues.profilevalue_user_id=se_users.user_id
    7. LEFT JOIN se_levels ON se_levels.level_id=se_users.user_level_id
    8. LEFT JOIN se_music ON se_profilevalues.profilevalue_user_id=se_music.music_user_id
    9.  
    10. WHERE
    11. se_users.user_verified='1'
    12. AND se_users.user_enabled='1'
    13. AND (se_users.user_search='1' OR se_levels.level_profile_search='0' ) ";
    -------------------------------------------------------------------------------

    Но в результате получилось что остался только один пользователь и все песни вывелись у него..но в одной ячейки))
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а не надо так делать
     
  3. Merlak

    Merlak Активный пользователь

    С нами с:
    25 апр 2009
    Сообщения:
    10
    Симпатии:
    0
    Спасибо за полный ответ..
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    так делать не надо =)
    В пхп склей, если сильно прижало. Нафига вообще в одной ячейке выводить все песни человека, может у него их там миллион.
     
  5. Merlak

    Merlak Активный пользователь

    С нами с:
    25 апр 2009
    Сообщения:
    10
    Симпатии:
    0
    Скорей всего вы правы...Можете показать пример обработки на пхп ?? У меня smarty шаблонизатор.

    У меня вот так идёт обработка:

    и в шаблоне самом:

     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я смарти не знаю, но это не к смартивопос, а к дизайну.

    А список песен стоит вытащить отдельными запросом с айдишниками юзеров в where in () , и перед шаблоном сгруппировать по номеру юзера. Тогда будет легко выводить.