我有问题,我不知道如何解决,这是我的PHP脚本的快照。
foreach($result as $row){
$Admin [] = array('id'=>$row['id'],'username' => $row['username'], 'email' => $row['email'], 'password'=>$row['password']);
}
include 'view_admins.php';
这是view_admins.php
的一部分,与我的问题相关
<article id="admins">//html tag
<?php
foreach($Admin as $admins)://this is line 75
?>
<form action="" method="post" >
<div>
<p><tr><td><p><?php htmlout($admins['username']); ?></p></td><td>
<input type="hidden" align="center" name="id" value="<?php echo $admins['id'];?>"></td><td>
<input type="submit" name="action" value="edit">
<input type="submit" name="action" value="delete"></p></td></tr>
</div>
</form>
<?php endforeach; ?>
</article>
当此代码运行时,它会生成“Warning: Invalid argument supplied for foreach() in /home/a2516093/public_html/connect/view_admins.php on line 75
”
我的困惑是这个代码在我的本地主机上运行完全正常然而当上传到我的主机它产生上面提到的警告,有人可以请告诉我是什么原因可能导致问题,我仍然学习PHP编程所以任何帮助将是高度赞赏。
据我所知$Admin
应该在view_admins.php
中显示,如果我错了,请纠正我。谢谢
答案 0 :(得分:1)
我猜你正试图foreach()
从mysql_query()
获得直接结果。
你不能这样做。您需要使用mysql_fetch_array()
或mysql_fetch_assoc();
来定义行。
一个例子:
$result = mysql_query("Your query");
while($row = mysql_fetch_array($result)) {
$Admin [] = array('id'=>$row['id'],'username' => $row['username'], 'email' => $row['email'], 'password'=>$row['password']);
}
您之前的代码工作原因可能是因为某些自动配置设置修复了无效代码。也可以是一个MySQL插件,可以自动获取正确的属性,而您通常必须手动执行此操作。
答案 1 :(得分:0)
我认为问题出在您的第一行foreach($result as $row){
数据可能不会到达那里。
print_r($result);
之前只需foreach($result as $row){
,并且可以看到有任何数据。
在foreach:
之前删除错误检查<article id="admins">//html tag
<?php
if(!empty($Admin)){
foreach($Admin as $admins)://this is line 75
?>
<form action="" method="post" >
<div>
<p><tr><td><p><?php htmlout($admins['username']); ?></p></td><td>
<input type="hidden" align="center" name="id" value="<?php echo $admins['id'];?>"></td><td>
<input type="submit" name="action" value="edit">
<input type="submit" name="action" value="delete"></p></td></tr>
</div>
</form>
<?php endforeach;
}
else{ echo "No data found !";}
?>
</article>