Annihilator
Guest
Из верных данных Неверно формируется массив
Никак не могу справиться со транным глюком при формировании одного массива из SQL-запроса.
Мне надо из таблицы product выбрать продукты, которые не занесены в текущую категорию в таблице allocation. Сначала я попробовал сделать эту выборку в пределах одного запроса, но оказывается, что MySQL не поддерживает вложеные запросы. Тогда решил сделать это в два приема. Вначале из таблицы allocation выбираю все ID продуктов в текущей категории, затем из таблицы product выбираю все продукты, которых нету в первом массиве.
Вот код:
Проблема в том, что массив $allocids формируется какой-то странный: отдельные его значения вообще не выводятся, а сделанная из него строка $idstr имеет примерно такой вид: "15,15", то есть в ней всегда два раза повторяется первый попавшийся ID из выборки, остальных вообще нету. В самом MySQL эти запросы с конкретными числами нормально работают, выдают все правильно.
В чем причина такого странного глюка?
Никак не могу справиться со транным глюком при формировании одного массива из SQL-запроса.
Мне надо из таблицы product выбрать продукты, которые не занесены в текущую категорию в таблице allocation. Сначала я попробовал сделать эту выборку в пределах одного запроса, но оказывается, что MySQL не поддерживает вложеные запросы. Тогда решил сделать это в два приема. Вначале из таблицы allocation выбираю все ID продуктов в текущей категории, затем из таблицы product выбираю все продукты, которых нету в первом массиве.
Вот код:
PHP:
<?
$allocids = array();
$query = mysql_query("SELECT product_id FROM allocation WHERE category_id=".$cur_cat[0].";") or die (mysql_error());
$allocids = mysql_fetch_array($query);
$idstr = implode(",", $allocids);
$notalloc = array();
$i = 0;
$query = mysql_query("SELECT * FROM product WHERE product_id NOT IN(".$idstr.");") or die (mysql_error());
while ($result = mysql_fetch_array($query)){
$notalloc[$i] = array();
for ($j=0; $j<count($result); $j++) $notalloc[$i][$j] = htmlentities($result[$j]);
$i++;
}
?>
В чем причина такого странного глюка?