2012-11-25 123 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已棄用