2012-02-21 65 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 
}