提供给foreach的参数无效!
问题描述:
可能重复:
Invalid argument supplied for foreach()提供给foreach的参数无效!
我有以下代码:
<?
foreach($format as $form)
{
echo $form;
?>
<ul>
<?
$s = $database->onlineFormatUsers($form);
while($row=mysql_fetch_assoc($s))
{
$username=$row['username'];
$id=$row['id'];?>
<li><a href="../userprofile.php?id=<?echo $id?>"><?echo "$username";?></a></li>
<?
}
?>
</ul>
<?
}
?>
<?
//the active formats
$f = $database->activeFormats();
while($row=mysql_fetch_assoc($f))
{
$format=$row['name'];
}
?>
跟它其无效参数? 任何原因为什么? 谢谢
答
你确定$ format是一个数组吗? foreach循环
答
$格式前加上一个
<?php echo gettype($format); ?>
不是数组或不存在! Before foreach
if(is_array($format)){
foreach($format ...
}
请显示'$ format'的来源。 – Unicron 2010-07-05 16:21:02
在foreach循环之前,你可以给我们一个'print_r'或'var_dump' of'$ format'吗? – Charles 2010-07-05 16:21:28
$格式似乎在foreach之后而不是之前被填充。将数据库输出的处理移至foreach之前。您应该仍然使用数组的检查,以防数据库返回任何内容。 – 2010-07-05 16:33:26