如何在MySQL Select语句中使用PHP数组与BETWEEN?

时间:2012-02-21 05:59:13

标签: php mysql arrays

我希望使用数组的内容

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

并将这些传递到MySQL select语句的where子句中,我的所有研究都通过使用IN一次性传入所有数组值来完成此任务。

我需要一次传入一个数组元素,然后在用下一个数组元素更新select语句时一次一个地回显SQL语句的结果。

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

感谢Zad突出了真正的问题

我需要将每个数组值分别传递给SQL语句,因为这些需要在带有BETWEEN的Where子句中使用,例如。在$ array1和$ array2之间的年龄,以确定年龄范围内的计数

感谢所有输入

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

尝试逃避争论

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

答案 2 :(得分: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

答案 3 :(得分:0)

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

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

  

我需要一次传入一个数组元素然后回显   SQL语句的结果一次一个作为select语句   用下一个数组元素更新。

你能解释一下这个场景有多好吗?