2012-03-24 102 views
1

如何选择ID在数组中的所有记录?选择阵列中的哪个位置

所以,如果我有一个值为1,25,2,12,1859和192的数组:应该返回所有带有ID的记录。

现在我有这样的:

$query="SELECT * FROM table WHERE Id IN(".implode(",",$my_array).")"; 

但是,这并不工作。它只返回一个值。

+1

你能表现出更多的代码以及'的print_r($ my_array)'? – MichaelRushton 2012-03-24 15:21:50

+0

当然:输出是:Array([0] => 24 [1] => 26)并且它只在查询中返回24。 – Jordy 2012-03-24 15:23:46

+0

'implode(“,”,$ my_array)'只返回'24'或查询只选择ID为24的行? – MichaelRushton 2012-03-24 15:25:53

回答

0

添加引号中查询

$query="SELECT * FROM table WHERE Id IN('".implode("','",$my_array)."')"; 
+3

如果值是整数,则不需要引号。 – MichaelRushton 2012-03-24 15:21:00

+0

不,没有什么改变:-( – Jordy 2012-03-24 15:21:09

0

我的建议是,首先破灭的my_array,它存储在一个变量和使用您的查询中。

例子:

<?php 
$my_array[0] = 24; 
$my_array[1] = 26; 
$qryVals = implode(",",$my_array); 
$query="SELECT * FROM table WHERE Id IN($qryVals)"; 
echo $query; 
?>