|
|
|
|
|
для: Trianon
(05.07.2006 в 11:23)
| | спасибо, пожалуй на этом и остановимся.... буду циклы строить... | |
|
|
|
|
|
|
|
для: RiFN
(05.07.2006 в 10:58)
| | Еще раз. Фактически, Вы хотите выполнить
$db_sql->sql_query("SELECT GROUP_CONCAT(catid SEPARATOR ',') FROM $art_childlcat WHERE artid = $artid");
| только результат не гарантирован из-за того, что
а) Ваш сервер может этот запрос и не понять, но это полбеды...
б) запрашиваемые данные могут превысить размер выделенного дял GROUP_CONCAT буфера.
Советую не выеживаться, а пройтись по resultset-у циклом. | |
|
|
|
|
|
|
|
для: cheops
(05.07.2006 в 10:39)
| | возможно я не правильно вопрос поставил или че-то недопонимаю. спасибо за замечание - заработало, но он мне в результате выдает "SELECT catid ..." в общем то, что стоит в кавычках... это не совсем то.
моя цель - это вывод из таблицы (с двумя колонками catid и artid) значения catid в тех строках где artid равно например '4'.... и эти значения должны выводиться строкой значений через запятую.
в общем есть запрос:
$cat_id = $db_sql->sql_query("SELECT catid FROM $art_childlcat WHERE artid='".$artid."'");
while($a = $db_sql->fetch_array($cat_id))
echo $a['catid'].",";
|
тут все работает
а что мне с ним сделать чтоб на выходе из "db_sql->sql_query...." уже была строка с запятыми? помогите плиз! | |
|
|
|
|
|
|
|
для: RiFN
(05.07.2006 в 10:30)
| | Если вы используете одинарные кавычки в строке, заключенной в одинарные кавычки - их следует экранировать
<?php
$cat_id = $db_sql->sql_query('SELECT CONCAT_WS(",","SELECT catid FROM $art_childlcat WHERE artid=\'4\'")');
?>
|
| |
|
|
|
|
|
|
|
для: RiFN
(05.07.2006 в 10:30)
| |
$cat_id = $db_sql->sql_query('SELECT CONCAT_WS(",",SELECT catid FROM $art_childlcat WHERE artid="4")');
|
| |
|
|
|
|
|
|
|
для: RiFN
(05.07.2006 в 10:12)
| | что-то у меня не получается такая выборка :(
подскажите плиз, где я не прав:
в таблице всего два поля catid и artid
$cat_id = $db_sql->sql_query('SELECT CONCAT_WS(",","SELECT catid FROM $art_childlcat WHERE artid='4'")');
|
выдает parse error, unexpected T_LNUMBER
что это??? | |
|
|
|
|
|
|
|
для: Trianon
(05.07.2006 в 09:54)
| | спасибо большое за развернутый ответ. вроде мысль поймал - пойду пробовать. | |
|
|
|
|
|
|
|
для: RiFN
(05.07.2006 в 09:42)
| | В принципе, в MySQL есть агрегатная функция GROUP_CONCAT().
Но у нее есть ограничение на размер результата.
Так что смотрите сами, её применение может выйти боком. | |
|
|
|
|
|
|
|
для: RiFN
(05.07.2006 в 09:42)
| | CONCAT(str1,str2,...)
Возвращает строку, являющуюся результатом конкатенации аргументов. Если хотя бы один из аргументов равен NULL, возвращается NULL. Может принимать более 2 аргументов. Числовой аргумент преобразуется в эквивалентную строковую форму:
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
|
CONCAT_WS(separator, str1, str2,...)
Функция CONCAT_WS() обозначает CONCAT With Separator (конкатенация с разделителем) и представляет собой специальную форму функции CONCAT(). Первый аргумент является разделителем для остальных аргументов. Разделитель, так же как и остальные аргументы, может быть строкой. Если разделитель равен NULL, то результат будет NULL. Данная функция будет пропускать все величины NULL и пустые строки, расположенные после аргумента-разделителя. Разделитель будет добавляться между строками, подлежащими конкатенации:
mysql> SELECT CONCAT_WS(",","First name","Second name","Last Name");
-> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(",","First name",NULL,"Last Name");
-> 'First name,Last Name'
|
| |
|
|
|
|
|
|
| всем доброго дня.
подскажите, пожалуйста, можно ли в результате запроса SELECT получить не массив, а строку со знаениями через запятую? или можт есть в пхп оператор, чтоб сразу перевести массив в строку... не хочется циклов городить...
спасибо... | |
|
|
|
|