所以我基本上要完成的是mysql查询中的foreach行,它打印出来自该行数据的html.这就是我所拥有的,它不断给我一个错误的foreach.
<?php
$shots = mysql_query("SELECT * FROM shots") or die(mysql_error());
while($row=mysql_fetch_array($shots))
$data[]=$row;
foreach($shots as $data)
if (!empty($data)){
$id = $data["id"];
$shotby = $data["shot"];
$passby = $data["pass"];
$time = $data["time"];
?>
<div class="feedbody">
<div class="title"><?php echo $shotby; ?></div>
<div class="feed-data">: gets a pass from <span><?php echo $passby; ?</span> and he takes a shot!</div>
<img class="dot" src="images/dot.png" />
</div>
<?php
}
}
?>
Run Code Online (Sandbox Code Playgroud)
或类似的东西.任何人都可以帮助我指出正确的方向.我一直试图找到答案.
编辑:根据要求添加错误.
Warning: Invalid argument supplied for foreach() in /home/content/93/7527593/html/fusionboard/includes/feed.php on line 7
Run Code Online (Sandbox Code Playgroud)
Par*_*ots 10
首先,如果要按名称(而不是索引)访问数据,则需要将MYSQL_ASSOC第二个参数包含在mysql_fetch_array中,或者使用mysql_fetch_assoc.
不确定为什么要将MySQL结果复制到第二个数组只是为了稍后循环 - 你可以直接遍历结果:
<?php
$shots = mysql_query("SELECT * FROM shots") or die(mysql_error());
while($row = mysql_fetch_assoc($shots)) { ?>
<div class="feedbody">
<div class="title"><?php echo $row["shot"]; ?></div>
<div class="feed-data">: gets a pass from <span><?php echo $row["pass"]; ?></span> and he takes a shot!</div>
<img class="dot" src="images/dot.png" />
</div>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
发布错误消息后更新:原始代码中的错误是您首先完成并将每个结果行复制到$data,但是在您的foreach中,您尝试循环$shots(再次)并让它调用每个项目$data.
您可能想要做的是foreach ($data as $item),然后从中复制属性$item.