使用php分解数组作为WHERE的MySQL查询

使用php分解数组作为WHERE的MySQL查询,php,mysql,sql,Php,Mysql,Sql,经过几个小时的修补,我似乎无法理解这一点。我在数据库中有一个表,其中保存了一个充满值的CSV字段。使用php explode函数后,我只剩下一个数组 $emailarray = list($email) = explode(",", $csv); while($arrayreadable = mysql_fetch_array($emailarray,$emailcount[0])){ $makefeed = mysql_query("SELECT email,name FROM $s

经过几个小时的修补,我似乎无法理解这一点。我在数据库中有一个表,其中保存了一个充满值的CSV字段。使用php explode函数后,我只剩下一个数组

$emailarray = list($email) = explode(",", $csv);


while($arrayreadable = mysql_fetch_array($emailarray,$emailcount[0])){



$makefeed = mysql_query("SELECT email,name FROM $statusdatabase WHERE email = $arrayreadable[`0`]'");
while ($friendfeedget = mysql_fetch_assoc($makefeed)) {

[Code for what I want the loop to do]

}


}

您可以在查询中使用
IN
子句,而不是每次循环并发出mysql查询,如下所示:

$emailarray = list($email) = explode(",", $csv);
$emails = implode(',', $emailarray);

$makefeed = mysql_query("SELECT email,name FROM $statusdatabase WHERE email IN ('".$emails."')");

while ($friendfeedget = mysql_fetch_assoc($makefeed)) {
  // code
}

由于某种原因,我无法让您的解决方案发挥作用。查询工作正常,但where似乎找不到任何匹配项。您应该在where子句中指定以逗号分隔的电子邮件列表。