Войти

Показать полную графическую версию : Запрос правильный но не работает


venuko
06-10-2010, 23:01
$size = "2|3";
$where2 = $size;
$where2 = str_ireplace("|", " OR id=", $where2);

$result33 = $db->sql_query("SELECT * FROM ".$prefix."_catalog_size WHERE id='".$where2."' ");

echo "
<p>Доступные размеры:
<select name=\"size\">";
while ($mypages33 = $db->sql_fetchrow($result33)) {
$id33 = intval($mypages33['id']);
$title33 = $mypages33['title'];
echo "<option value=\"".$id33."\">".$title33."</option>";
}
echo "
</select>
</p>";

Сломал уже голову, запрос верный, но выводит только значение равное id=2 а должно выводить два значения равное 2 и 3. Подставляешь в запрос в ручную WHERE id=2 OR id=3 все пашет как надо.

Подскажите в чем могут быть грабли?

Coutty
07-10-2010, 03:35
Запрос неправильный, вот и не работает.
По вашему коду формируется такая строка:
...WHERE id='2 OR id=3'
а должна быть такая:
...WHERE id='2' OR id='3'
или такая:
...WHERE id=2 OR id=3
В общем, кавычки стоят не так.

В таких случая полезно запрос формировать в отдельной переменной, а не непосредственно при подстановке в параметр метода. Тогда можно выводить отладочное значение.

venuko
07-10-2010, 14:25
Спасибо, помогло. Просто моя невнимательность ... :)




© OSzone.net 2001-2012