我有這樣的陣列中的可變選擇所有字段,其中字段值不是在陣列
和數據庫字段「區域」,它包含一個單一的值例如北
我需要一個select語句來選擇「Region」的值不是數組中列出的任何值的所有字段。例如北,南,西。
我有這樣的陣列中的可變選擇所有字段,其中字段值不是在陣列
和數據庫字段「區域」,它包含一個單一的值例如北
我需要一個select語句來選擇「Region」的值不是數組中列出的任何值的所有字段。例如北,南,西。
你可以在SQL中使用WHERE field NOT IN('value1', 'value2', ...)
來做到這一點。 Basic string functions可能足以讓你的數組以這種格式。
值在一個數組中,它們將根據用戶選擇而改變 – sah 2012-03-01 20:21:45
$regions = "north|west|south";
$regionsArray = explode('|', $regions);
for ($i = 0; $i < count($regionsArray); $i++) {
$regionsArray[$i] = "'" . $regionsArray[$i] . "'";
}
$query = "SELECT *
FROM ...
WHERE Region NOT IN (" . implode(",", $regionsArray) . ")";
這假設你的$regions
變量是等中記載的字符串,而不是陣列。
如果是在此之前的數組,則很可能不需要將其轉換爲字符串(上面的代碼將其轉換回數組)。
也許你忘了mysql_real_escape_string()?
function db_escape($value)
{
return '"'.mysql_real_escape_string($value).'"';
}
$regions = array('north','west','south');
$query = "SELECT *
FROM `table`
WHERE `Region` NOT IN (" . implode(",", array_map('db_escape',$regions)) . ")";
你有什麼試過的? '$ regions'從哪裏來?因爲這不是一個數組。 – 2012-03-01 20:11:42
http://stackoverflow.com/questions/1519272/mysql-not-in-query – smp7d 2012-03-01 20:13:01
我在窗體中有多個複選框。如果用戶選擇了南北和西部,我需要在Rocket的區域字段 – sah 2012-03-01 20:27:14