2015-06-09 4 views
-1

Я хочу показать все элементы, которые заказчик просто заказал, используя массив от $_POST['formID']. Значения в массиве правильно, но я получаю ошибку:Query: Array in Where

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /customers/b/3/d/kildemarkskolen2.dk/httpd.www/Indkoeb/order.php on line 146

Любые предложения, что это не так?

$array = $_POST['formID']; 
$MatID = implode(",", $array); 

echo "Imploded " . $MatID . "<br>"; 

$query5 = "SELECT * FROM UVmaterialeT 
      INNER JOIN SerieT 
      ON SerieT.SerieID=UVmaterialeT.SerieID 
      JOIN MaterialeTypeT 
      ON MaterialeTypeT.TypeID=UVmaterialeT.TypeID 
      WHERE UVmaterialeT.UVmaterialeID IN ".$MatID." 
      ORDER BY SerieT.SerieID, UVmaterialeT.Klassetrin"; 
+0

Что такое '$ MatID'? Единственное значение или список значений? –

ответ

4

вам необходимо изменить в следующей строке

WHERE UVmaterialeT.UVmaterialeID IN ".$MatID." line 

в

WHERE UVmaterialeT.UVmaterialeID IN (".$MatID.") 

и ваш $MatID в следующем формате $MatID=('1','2','3')

+0

Спасибо! Он решил проблему. –

1

() Пропущенный для IN вокруг генерируемого string -

WHERE UVmaterialeT.UVmaterialeID IN (".$MatID.") 

Если значения не intergers затем добавить ' s правильно.

$MatID = implode("','", $array); 

И условие будет -

WHERE UVmaterialeT.UVmaterialeID IN ('".$MatID."') 
0

Если $MatID одно значение, вы можете использовать = вместо IN:

WHERE UVmaterialeT.UVmaterialeID = ".$MatID." 

Если это список значений, вы должны использовать () вокруг него:

WHERE UVmaterialeT.UVmaterialeID = (".$MatID.")