假设我想给喜欢大块糖果的人发一封电子邮件。
当我这样做时:
$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语句。
但我就是不知道该怎么做
Try
$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_*
您在$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']."')");
我还想提醒您,mysql_
函数已被弃用,因此我建议您在新项目中切换到mysqli
或PDO
。
您可以使用implode()
将数组转换为逗号分隔的字符串:
implode(',',$result);
你可以用IN
要将数组转换为逗号分隔的字符串,可以使用
implode (",",$array)