Динамический запрос к mysql

spl

Новичок
Динамический запрос к mysql

Всем привет.
Есть проблемка, вот в этом куске кода, копаюсь копаюсь и не вижу ошибки.
PHP:
<? if (count($_POST['check'])>0)
{
foreach ($_POST['check'] as $key => $id) 
{   $query = "select * from icu_all where";
if ($query == "select * from icu_all where")
{
$query.=" id='$id'";
}
else
{
$query.=" or id=$id";
}
mysql_query($query);
echo $query;
}
?>
У меня есть скажем два значения id
Которые мне нужно выбрать из БД но вместо этого получается вот что: select * from icu_all where id='193'select * from icu_all where id='1208'
Т.е. запрос дублируется, как сделать чтобы это всё было в одном запросе?
 

SelenIT

IT-лунатик :)
Явно нужно что-то вроде такого:

... where id=значение_1 OR id=значение_2 OR ... id=значение_n

или такого:

... where id IN (значение_1,значение_2, ... ,значение_n)

Cобрать нужную строку из массива поможет [m]implode[/m]
 

Romantik

TeaM PHPClub
У тебя при каждой интерации цикла $query СНОВА становится равным "select * from icu_all where";
Вынеси
$query = "select * from icu_all where";
запределы цикла и построй проверку по другому, напримев добавив переменную $i. if($i==0)..... $i++
 

demis

Новичок
в цикле собери в in('193','1208') , а после только сделай конкатенацию.
 

SelenIT

IT-лунатик :)
Для данной конкретной задачи цикл, имхо, вообще не нужен. Другое дело, что данные из формы обязательно надо проверять, а при проверке массива без цикла вряд ли обойдешься - но это уже другая задача)
 

akxxiv

Новичок
Запрос дублируется потому, что
PHP:
mysql_query($query);
и
PHP:
echo $query;
у тебя в цикле стоят.
PHP:
"select * from icu_all where";
тоже в цикле - согласен с Романтиком.
Сделай что-то вроде того
PHP:
$query = 'SELECT  * FROM icu_all where id IN('.join(",", $_POST['check']).')'
или вынеси
PHP:
"select * from icu_all where";
за цикл
 
Сверху