【发布时间】:2014-04-16 21:19:10
【问题描述】:
建议的问题尚未完全涵盖我的问题。我对这里的答案很感兴趣,Invalid argument supplied for foreach!,但不太明白它在我的情况下如何应用。
我有以下代码,它确实按我的预期工作;该代码通过匹配从上一页发布的作为隐藏表单给出的 id,在 mysql 数据库中找到“电子邮件”列,来构建一个电子邮件地址数组。
但是,我也收到错误消息:Invalid argument supplied for foreach() on line 50
任何帮助表示赞赏。
function findEmail($id) {
$mysqli = new mysqli(DBHOST,DBUSER,DBPASS,DB);
if ($mysqli->connect_errno) {
error_log("Cannot connect to MySQL: " . $mysqli->connect_error);
return false;
}
$query = "SELECT email FROM `Students` WHERE id = '$id'";
$result = $mysqli->query($query);
while($row = $result->fetch_array()) {
$rows[] = $row;
}
$email = "";
foreach($rows as $row) { //This is line 50
$email = ($row['email']);
}
return $email;
}
$userId = array();
$userEmail = array();
foreach($_POST as $key => $value) {
array_push($userId, $value);
array_push($userEmail, findEmail($value));
}
【问题讨论】:
-
你在while循环两次然后foreach,它没有意义
-
您似乎也只是在
foreach循环中分配了$email,所以最后您不是添加到变量中,而是每次都覆盖它。 -
ID 是唯一的,因此应该只有一个电子邮件地址。