查询:Where中的数组

时间:2015-06-09 11:14:55

标签: php mysql arrays

我想使用$_POST['formID']中的数组显示客户刚订购的所有商品。 数组中的值是正确的,但我得到错误:

  

警告:mysqli_fetch_array()期望参数1为mysqli_result,   给出的布尔值   /customers/b/3/d/kildemarkskolen2.dk/httpd.www/Indkoeb/order.php on   第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";

3 个答案:

答案 0 :(得分:4)

您需要在以下行中进行更改

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

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

并且您的$MatID采用以下格式   $MatID=('1','2','3')

答案 1 :(得分:1)

错过了生成的()周围IN的{​​{1}} -

string

如果值不是整数,则正确添加WHERE UVmaterialeT.UVmaterialeID IN (".$MatID.")

'

条件是 -

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

答案 2 :(得分:0)

如果$MatID是单个值,您可以使用=代替IN

WHERE UVmaterialeT.UVmaterialeID = ".$MatID."

如果是值列表,则应使用()

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