запрос MySQL where id = '$massiv[]' без использования цикла

levi-de

Новичок
запрос MySQL where id = '$massiv[]' без использования цикла

Здравствуйте.
Возможно ли запросить у базы определённые поля, фильтруя результат по данным из массива $massiv[] не используя циклов.

В общем нужно что-то типа такого

$massiv[0]=1;
$massiv[1]=2;
$massiv[2]=3;

mysql_query("select * from table where id='$massiv[]'");
 

Фанат

oncle terrible
Команда форума
тебе нужен оператор IN в SQL
и implode - в пхп.
только не забудь прогнать весь массив сначала через intval

-~{}~ 14.04.06 13:20:

и к массивам так - $massiv[] - не обращаются.
постарайся это запомнить
 

levi-de

Новичок
Вот, сделал по инструкции.


$massivstring = implode(",", $massiv);

$result=mysql_query("select * from table where id in ($massivstring)");

работает корректно. Спасибо

Только есть пару уточняющих вопросов.

1. Где можно подробно прочитать про оператор IN?
2. И зачем нужно прогонять массив через intval? У меня в любом случае все данные массива являются integerами
 

Фанат

oncle terrible
Команда форума
1. в документации по MySQL, очевидно.
2. "у меняв любом случае все данные правильные" - это последние слова всех без исключения наивных программистов, которых поимели хакеры или которые угробили базу из-за ошибки, которая вдруг начала выдавать не те данные.
 
Сверху