2011-06-25 69 views
0
$skuArray = array(00240=>123,00241=>456); 
$getSkus = mysql_query("SELECT sku FROM data WHERE sku IN($skuArray)"); 

我上面的代码不工作选择多个值,我怎样才能让它在选择所有的SKU从数据WHERE SKU =任何在$ skuArray键名的? (在这种情况下为00240和00241)PHP/MySQL的 - 关联数组

希望这是有道理的,谢谢。

回答

2

试试这个:

<?php 
$skuArray = array('00240'=>123, '00241'=>456); 

$inSkus = array(); 

foreach (array_keys($skuArray) as $key) 
{ 
    $inSkus[] = '"' . $key . '"'; 
} 

$sql = 'SELECT sku FROM data WHERE sku IN (' . implode(', ', $inSkus) . ')'; 

echo $sql; 

你需要有钥匙为字符串,然后你需要用这些括号中的SQL查询。

2
$skuArray = array('00240'=>123,'00241'=>456); 
$keys = array_keys($skuArray); 
$getSkus = mysql_query("SELECT sku FROM data WHERE sku IN('" . join("','", $keys) . "')"); 
+0

不能得到这个工作:( – Nicekiwi

+0

什么是不工作?被包装在引号数组键,否则PHP读取它们为八进制。为$ skuArray NULL?在这种情况下,你会在第2行得到一个错误你应该检查一下$ skuArray也不是空的。 –

0
foreach($skuArray as $value=>$key){ 
    if($where=="") 
     $where= $value" = '".$key."'"; 
    else 
     $where.= $value" = '".$key."'"; 
} 
$getSkus = mysql_query("SELECT sku FROM data " .($where)?" WHERE $where)":"");