让我们说我想给喜欢大号糖果的人发一封电子邮件。
当我这样做时:
$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());
这个查询2当然是个问题。
$ result的格式不正确,然后我得到了明显的错误:
**Unknown column 'Array' in 'where clause'**
我需要帮助以一种看起来像这样的方式格式化查询结果:
($val1, $val2, $val3....and so on)
然后我将能够将它用于IN语句。
但我只是不知道该怎么做。
答案 0 :(得分:2)
尝试
$array = array();
while($result = mysql_fetch_array( $query1 ))
{
$array[] = $result['id_candy'];
}
然后使用implode
$in_condition = implode(',', $array);
最后
$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($in_condition)
注意:请切换到PDO或mysqli _ *
答案 1 :(得分:1)
$query2
放置数组而不是实际值的sintax中有错误
更改
$query2 = mysql_query("SELECT mail FROM `buyers` WHERE candysizeinterest IN ($result)
以
$query2 = mysql_query("SELECT `mail` FROM `buyers` WHERE `candysizeinterest` IN ('".$result['id_candy']."')");
答案 2 :(得分:0)
您可以使用implode()
将数组转换为以逗号分隔的字符串:
implode(',',$result);
您可以将其与IN
一起使用答案 3 :(得分:0)
要将数组转换为以逗号分隔的字符串,请使用
implode (",",$array)