Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Результат Select в одну строку

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

Результат Select в одну строку

Сообщение deadromeo »

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

Код: Выделить всё

$sql = 'SELECT поле
					FROM ' . ТАБЛИЦА . '
					ORDER BY RAND() LIMIT 5';	
				$result = $this->db->sql_query($sql);
				while($row = $this->db->sql_fetchrow($result))
				{и так далее...}
Но хоть убей не могу составить и сообразить конструкцию которая сразу же результатом дала строку с данными через запятую.

Читал что нужно использовать GROUP BY и GROUP_CONCAT, три дня честно пытался это впихнуть и поменять код, не получилось. Посему прошу на пальцах обьяснить кому не трудно, как же получить результат одной строкой, а не построково получать данные как в примере выше
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 4 месяца
Благодарил (а): 267 раз
Поблагодарили: 216 раз
Контактная информация:

Re: Результат Select в одну строку

Сообщение Sumanai »

А почему бы не сделать это посредством php?

Отправлено спустя 51 секунду:
deadromeo писал(а): ORDER BY RAND
Не рекомендуется.
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

Re: Результат Select в одну строку

Сообщение deadromeo »

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

А чем RAND плох если мне и нужны рандомные 5 записей?
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 4 месяца
Благодарил (а): 267 раз
Поблагодарили: 216 раз
Контактная информация:

Re: Результат Select в одну строку

Сообщение Sumanai »

deadromeo писал(а): Так не могу я понять как это реализовать, мне бы один работающий пример для понимания

Код: Выделить всё

$sql = 'запрос';   
$result = $this->db->sql_query($sql);
$res_array = $this->db->sql_fetchrowset($result);
$string = implode(', ', $res_array);
deadromeo писал(а): А чем RAND плох если мне и нужны рандомные 5 записей?
Тормоза.
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

Re: Результат Select в одну строку

Сообщение deadromeo »

Спасибо большое за решение, завтра проверим.

Отправлено спустя 37 минут 44 секунды:
Проверил сейчас, не прокатило, пишет

Код: Выделить всё

Array to string conversion
на этой строке

Код: Выделить всё

$string = implode(', ', $res_array);
У меня получается то тут

Код: Выделить всё

$res_array = $this->db->sql_fetchrowset($result);
На выходе идет массив массивов

Код: Выделить всё

Array ( [0] => Array ( [pf_vkbb_profile] => 8902397 ) [1] => Array ( [pf_vkbb_profile] => 8902396 ) )
Посему и идет ошибка...
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 4 месяца
Благодарил (а): 267 раз
Поблагодарили: 216 раз
Контактная информация:

Re: Результат Select в одну строку

Сообщение Sumanai »

Вам какого вида строку нужно получить?
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

Re: Результат Select в одну строку

Сообщение deadromeo »

Если брать данные из моего предыдущего поста то нужен такой вид

Код: Выделить всё

8902397,8902396
То есть если конкретизировать - я беру запросом данные из одного дополнительного поля у 5 случайных пользователей и мне нужно чтоб эти данные вышли одной строкой через запятую
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Результат Select в одну строку

Сообщение Sheer »

Код: Выделить всё

    $string = '';
    while($row = $db->sql_fetchrow($result))
    {
        $string .= '' . $row['поле'] .', ';
    }
    $string = substr($string, 0, -2);
Отправлено спустя 2 минуты 1 секунду:
Ну очевидно же! http://php.net/manual/ru/language.operators.string.php
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 12 лет 10 месяцев
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Контактная информация:
Забанен: Бессрочно

Re: Результат Select в одну строку

Сообщение deadromeo »

Спасибо, действительно можно было догадаться, все работает как надо
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Ответить

Вернуться в «Для разработчиков»