2012-02-21 47 views
0

我期待使用数组如何在MySQL中使用PHP数组使用BETWEEN选择语句?

$arr =array(24,28,30,34, 40); 

的内容,并通过这些到MySQL select语句的where子句,我所有的研究表明,这种做使用IN在所有的数组值传递一个去。

我需要一次一个传递每个数组元素,然后随着select语句用下一个数组元素更新,一次传回一个SQL语句的结果。

新的编程和PHP所以只需要让我开始一个小例子...

由于扎德强调,真正的问题

我需要单独通过每个数组值的SQL语句因为这些需要在BETWEEN的Where子句中使用,例如。 WHERE年龄介于$阵列1和$数组2,以确定计数超过年龄范围

感谢所有的输入

+3

什么样的代码你有这么远吗? – Joseph 2012-02-21 06:05:24

+0

所以,你需要......在24和28之间的年龄,......在28和30之间的年龄等等。 – Timur 2012-02-21 07:23:52

回答

0

您可以使用foreach功能:

// make connection to mysql server 
foreach ($arr as $element) { 
    $statement = "SELECT whatever FROM wherever WHERE something = $element"; // maybe a little validation here wouldn't hurt either 
    // execute statement 
    // process results 
} // end of foreach 
// close connection 
+0

这是只有准备好的语句 – Timur 2012-02-21 06:09:03

0
$arr =array(24,28,30,34, 40); 
$a = 'SELECT * FROM foo WHERE bar IN('.implode(',',$arr).')'; 

编辑:我承认,我没有完全阅读这个问题,标题是误导性的 - 考虑改变它。

我需要在每个阵列元件中的一个传递的时间和然后在作为选择语句 与下一数组元素更新时间回声出 的SQL语句的一个结果。

你能解释一下情况会好一些吗?

+0

他可以接受他说他不想这样做... – 2012-02-21 06:09:29

1

您可以使用implode函数来构建包含列表的字符串;

$arr =array(24,28,30,34, 40); 
$query = 'SELECT * FROM mytable WHERE id IN (' .implode($arr, ', '). ')'; 
echo $query;` 

http://codepad.org/tLPZxq8P

http://mx2.php.net/manual/en/function.implode.php

+0

谢谢..但我需要每次传递一个元素,如果我想要传递所有数组元素立刻 – user1222646 2012-02-21 06:13:33

+0

为什么你需要一个接一个传递?使用IN会快很多,因为只需要查询数据库一次。 – zad 2012-02-21 06:17:20

+0

,因为我想通过 – user1222646 2012-02-21 06:24:41

1

尝试与逃逸的说法

foreach($arr as $array_element) { 
    $query = 'SELECT * FROM table WHERE field = \''.mysql_real_escape_string($array_element).'\''; 
    //your statement 
} 
相关问题