0

假设我想向喜欢大糖果的人发送电子邮件。

当我这样做时:

$query1 = mysql_query("SELECT id_candy FROM `candylist` WHERE
candysize > 100") or die(mysql_error());

$result = mysql_fetch_array( $query1 );

$query2 = mysql_query("SELECT mail FROM `buyers` WHERE
candysizeinterest IN ($result)
") or die(mysql_error());

这个query2当然是问题所在。

$result 的格式不适合使用,然后出现以下明显错误:

**Unknown column 'Array' in 'where clause'**

我需要帮助以如下方式格式化查询结果:

($val1, $val2, $val3....and so on) 

然后我将能够将它用于 IN 语句。

但我只是不知道该怎么做。

4

4 回答 4

2

尝试

$array = array();
while($result = mysql_fetch_array( $query1 ))
{
   $array[] = $result['id_candy'];
}

然后使用内爆

$in_condition  = implode(',', $array);

终于

$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($in_condition)

注意:请切换到 PDO 或 mysqli_*

于 2013-04-15T16:43:52.327 回答
1

您在$query2放置数组而不是实际值的语法中有错误

改变

$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($result)

$query2 = mysql_query("SELECT `mail` FROM `buyers` WHERE `candysizeinterest` IN ('".$result['id_candy']."')");


我还想提醒您,mysql_功能已被弃用,因此我建议您切换到新项目mysqliPDO进行新项目。

于 2013-04-15T16:36:42.803 回答
0

您可以使用implode()将数组转换为逗号分隔的字符串:

implode(',',$result);

您可以将其与 IN 一起使用

于 2013-04-15T16:38:38.563 回答
0

要将数组转换为逗号分隔的字符串,您将使用

implode (",",$array)
于 2013-04-15T16:40:11.600 回答