2012-11-25 87 views
0

所以,我的MySQL查询有问题。它只显示来自变量数据列表的第一个结果。以下是我已经有了MySQL查询只返回1行

$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

使用如下因为你已经通过while循环哪一个更容易

while($emaildata = mysql_fetch_assoc($fetch)){ 
    echo $emaildata['email'] 
} 

建议迭代$fetch

1.Learn从MySQL注射,以防止:Good Link

2.Mysql扩展不建议编写新的代码。相反,应该使用mysqli或PDO_MySQL扩展。更多阅读:PHP Manual

3

取数组,而不是获取关联,并使用mysqli_()代替mysql_()它不再由社区维护,也可以使用,而不是foreachwhile回路,并使用index名称,如果任何

while($emaildata = mysql_fetch_array($fetch)) { 
    echo $emaildata; //Use index name if any 
    } 
} 
1

你应该使用while循环,只要有下一行就可以迭代:

while($row = mysqli_fetch_row($fetch)){ 
     echo $row['email'] 
} 

CAUTI ON !!!:使用mysqli_fetch_row作为mysql_fetch_row已弃用