|
|
|
| столкнулся с проблемой формирования SQL-запроса:
$def='cid=(select cid from categ where gid='.$id.')';
$sql="select * from tovar where ".$def.";";
|
структура базы такая:
в таблице tovar существует численный идентификатор cid, который является id таблицы categ.
Вся проблема в том, что запрос select cid from categ where gid='.$id.' может выдать как одно значение ( в этом случае запрос обрабатывается ), так и группу значений, что приводит к ошибке.. То есть конечный запрос, например, "select * from tovar where cid=2;" - обрабатывается, а "select * from tovar where cid=Array;" - нет..
Каким образом мне сформировать запрос, чтобы учесть все значения?
Заранее спасибо.. | |
|
|
|
|
|
|
|
для: Warmonger
(19.12.2006 в 23:03)
| | Используйте ограничение "LIMIT 1" - в этом случае будет гарантировано возвращёна одна запись
$def='cid=(select cid from categ where gid='.$id.' limit 1)';
$sql="select * from tovar where ".$def.";";
|
| |
|
|
|
|
|
|
|
для: cheops
(20.12.2006 в 02:12)
| | Попробуйте всместо $def='cid=(select cid from categ where gid='.$id.')'; заюзать $def='cid IN ((select cid from categ where gid='.$id.'))'; | |
|
|
|