views:

110

answers:

2

If I have an array of say, some ID's of users. How could i do something like this:

$array = array(1,40,20,55,29,48);
$sql = "SELECT * FROM `myTable` WHERE `myField`='$array'";

Is there a simple way to do this, I thought about looping through array items and then building up one big "WHERE -- OR -- OR -- OR" statement but i thought that might be a bit slow for large arrays.

+5  A: 

You want to use IN:

WHERE `myfield` IN (1,40,20,55,29,48)

Use implode to construct the string:

$sql = "SELECT * FROM `myTable` WHERE `myField` IN (" . implode(',', $array) . ")";
Mark Byers
So would i do "IN ($array)" ?
tarnfeld
No, use implode to construct the string.
Mark Byers
+6  A: 

Use IN:

$sql = "SELECT * FROM `myTable` WHERE `myField` IN (1,40,20,55,29,48)";

you can use implode(",", $array) to get the list together from the array.

Pekka