Страница 1 из 1

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

Добавлено: 23.04.2016 18:00
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, три дня честно пытался это впихнуть и поменять код, не получилось. Посему прошу на пальцах обьяснить кому не трудно, как же получить результат одной строкой, а не построково получать данные как в примере выше

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

Добавлено: 23.04.2016 18:21
Sumanai
А почему бы не сделать это посредством php?

Отправлено спустя 51 секунду:
deadromeo писал(а): ORDER BY RAND
Не рекомендуется.

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

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

А чем RAND плох если мне и нужны рандомные 5 записей?

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

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

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

$sql = 'запрос';   
$result = $this->db->sql_query($sql);
$res_array = $this->db->sql_fetchrowset($result);
$string = implode(', ', $res_array);
deadromeo писал(а): А чем RAND плох если мне и нужны рандомные 5 записей?
Тормоза.

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

Добавлено: 23.04.2016 19:04
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 ) )
Посему и идет ошибка...

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

Добавлено: 23.04.2016 20:19
Sumanai
Вам какого вида строку нужно получить?

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

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

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

8902397,8902396
То есть если конкретизировать - я беру запросом данные из одного дополнительного поля у 5 случайных пользователей и мне нужно чтоб эти данные вышли одной строкой через запятую

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

Добавлено: 23.04.2016 20:36
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

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

Добавлено: 23.04.2016 22:54
deadromeo
Спасибо, действительно можно было догадаться, все работает как надо