Очень простой запрос с implode дает implode: переданы недопустимые аргументы

Сегодня пятница, поэтому я, очевидно, не вижу ничего плохого, поэтому я решил спросить здесь.

Я хочу получить список имен из базы данных, используя:

$test = mysql_query("SELECT Names FROM Content ORDER BY Names");

Это должно дать JimMikePeter (по крайней мере, в PHP MyAdmin)

Это не очень читабельно, поэтому я подумал, давайте взорвемся:

$line = implode( ", ", $test);
echo $line;

Это должно дать: Jim, Mike, Peter но это не так, это дает: Предупреждение: implode() [function.implode]: Invalid arguments passed

Также я хочу получить такой результат: "Jim", "Mike", "Peter" (с кавычками)

Есть предположения?


person Maurice    schedule 06.01.2012    source источник
comment
implode() принимает массив в качестве второго параметра, в настоящее время вы передаете возврат значение из mysql_query, которое не является массивом.   -  person Clive    schedule 06.01.2012
comment
mysql_query возвращает ресурс, а не строку. Согласно php.net, возвращаемый ресурс результата должен быть передан mysql_fetch_array() и другим функциям для работы с таблицами результатов, чтобы получить доступ к возвращенным данным.   -  person j08691    schedule 06.01.2012


Ответы (2)


Вы должны получить массив, используя mysql_fetch_array. Использование запроса в качестве параметра в implode() приведет к ошибке

person Freeman L    schedule 06.01.2012
comment
Ах, конечно, добавил это: while ( $a = mysql_fetch_array($test) ) { echo '"'.$a['Names'].'"'; } так как же добавить имплод? - person Maurice; 07.01.2012
comment
Еще лучше, как поместить этот результат в новое значение (я хочу повторно использовать эту строку в $newarray) - person Maurice; 07.01.2012
comment
Если вы хотите создать Джима, Майка, Питера, потребуется еще несколько строк кода: ';} Но теперь в конце есть лишняя запятая и пробел, поэтому вам нужно удалить их после цикла с помощью rtrim($newstring, , ) - person Freeman L; 07.01.2012

Вы должны знать, что mysql_query возвращает ресурс, описанный в руководстве по PHP, которое вам нужно для извлечения данных с помощью функции выборки, такой как mysql_fetch_array

person Maximilian Ruta    schedule 06.01.2012
comment
Придумал это, но оно ошибочно: while ($arr = mysql_fetch_array($test)) { echo implode(", ",$arr); } - person Maurice; 07.01.2012