所以,我的MySQL查询有问题。它只显示来自变量数据列表的第一个结果。这就是我所拥有的
$Data='1,2,3'
$fetch = mysql_query("SELECT email FROM data WHERE uid IN ($Data) ");
if (mysql_num_rows($fetch)) {
$emaildata = mysql_fetch_assoc($fetch);
foreach($emaildata as $fetch2){
echo $fetch2;
}
} else {
echo Failed;
}
现在,它只会提取3的第一个结果,而不是3个单独的电子邮件中的每一个。任何帮助都表示赞赏,对这件事情有点新鲜。
答案 0 :(得分:3)
使用如下,因为您通过while循环迭代$fetch
这更容易
while($emaildata = mysql_fetch_assoc($fetch)){
echo $emaildata['email']
}
建议:
1.学会防止MySQL注入:Good Link
2.建议不要使用扩展名来编写新代码。相反,应该使用mysqli或PDO_MySQL扩展。更多阅读:PHP Manual
答案 1 :(得分:3)
获取数组而不是提取关联数,并使用不再由社区维护的mysqli_()
代替mysql_()
,也使用while
循环代替foreach
并使用如果有index
名称
while($emaildata = mysql_fetch_array($fetch)) {
echo $emaildata; //Use index name if any
}
}
答案 2 :(得分:1)
你应该使用while循环,这使你能够迭代,只要有下一行:
while($row = mysqli_fetch_row($fetch)){
echo $row['email']
}
小心!!!:使用mysqli_fetch_row
,因为mysql_fetch_row
已被弃用