MySQL Query只返回1行

时间:2012-11-25 16:23:33

标签: php mysql

所以,我的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个单独的电子邮件中的每一个。任何帮助都表示赞赏,对这件事情有点新鲜。

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已被弃用