PHP+;转换数组以与IN语句一起使用

PHP+;转换数组以与IN语句一起使用,php,sql,arrays,in-clause,Php,Sql,Arrays,In Clause,假设我想给喜欢大块糖的人发封电子邮件 当我这样做时: $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

假设我想给喜欢大块糖的人发封电子邮件

当我这样做时:

$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());
这当然是问题所在

$result的格式不适合使用,然后我得到一个明显的错误:

**Unknown column 'Array' in 'where clause'**
我需要帮助以如下方式格式化查询结果:

($val1, $val2, $val3....and so on) 
然后,我将能够使用它作为IN语句


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

您的sintax中有一个错误,
$query2
您放置的是数组而不是实际值

改变



我还想提醒您,
mysql\uuu
函数已被弃用,因此我建议您切换到新项目或进行新项目。

您的sintax中有一个错误,
$query2
您放置的是数组而不是实际值

改变


我还想提醒您,
mysql\uuu
函数已被弃用,因此我建议您切换到新项目或进行新项目。

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

内爆(“,”,$result)

您可以在中使用它,您可以使用
内爆()
将数组转换为逗号分隔的字符串:

内爆(“,”,$result)


您可以将其与IN

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

implode (",",$array)

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

implode (",",$array)
试一试

然后使用

终于

$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($in_condition)
注意:请切换到PDO或mysqli*

试试看

然后使用

终于

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

注意:请切换到PDO或mysqli*

您应该检查查询中的引用…查询中的值以逗号分隔,而不是数组存储,我这样做了。正如我在我的帖子上所说的,我确实知道很多。我自己搞不清楚的是,如何将查询结果转换成一种可用的格式,如您提到的格式或Fabio在其帮助性回答中提到的格式。您应该检查查询中的引用…查询中的值是以逗号分隔的列表,而不是数组,我这样做了。正如我在我的帖子上所说的,我确实知道很多。我自己搞不懂的一件事是将查询结果转换成一种可用的格式,如您提到的格式或Fabio在其帮助性回答中提到的格式。谢谢您的快速回复。但是在将其更改为so之后,我得到了错误:Parse error:syntax error,意外的T_-ENCAPSED_和_-WHITESPACE,应为T_字符串、T_变量或T_-NUM_字符串。再次感谢!我刚刚将“'.$result[idcandy]..”更改为“.$result['id\u curso]”,因为我得到了“语法错误,意外的T_常量_ENCAPSED_STRING”,它的效果非常好。我很感激。我还将探索内爆选项,看看它是如何进行的!非常感谢。谢谢你的快速回复。但是在将其更改为so之后,我得到了错误:Parse error:syntax error,意外的T_-ENCAPSED_和_-WHITESPACE,应为T_字符串、T_变量或T_-NUM_字符串。再次感谢!我刚刚将“'.$result[idcandy]..”更改为“.$result['id\u curso]”,因为我得到了“语法错误,意外的T_常量_ENCAPSED_STRING”,它的效果非常好。我很感激。我还将探索内爆选项,看看它是如何进行的!非常感谢。非常感谢。我想这正是在本例中使用的正确php函数,在您发表评论后,我们将学习它。我很感激,谢谢。我想这正是在本例中使用的正确php函数,在您发表评论后,我们将学习它。这正是我缺少的步骤,我认为这是php和mysql查询之间的交替。我会记下来的。非常感谢。PS:我将关注PDO上的评论,这也是我声明的意图=)如果您以后想使用fwrite打印结果,这种方法也是最有用的,因为内爆函数将数组转换为字符串。这正是我缺少的步骤,我认为这是php和mysql查询之间的交替。我会记下来的。非常感谢。PS:我将关注关于PDO的评论,这也是我声明的意图=)如果您以后想使用fwrite打印结果,这种方法也是最有用的,因为内爆函数将数组转换为字符串。
$in_condition  = implode(',', $array);
$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($in_condition)