基本上我想要完成的是mysql查询中的foreach行,它打印出来自该行数据的html。这就是我所拥有的,它一直给我一个错误。
<?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
}
}
?>
或类似的东西。任何人都可以帮助我指出正确的方向。我一直试图找到答案。
编辑:按要求添加错误。
Warning: Invalid argument supplied for foreach() in /home/content/93/7527593/html/fusionboard/includes/feed.php on line 7
答案 0 :(得分:9)
首先,如果要按名称(而不是索引)访问数据,则需要将 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 } ?>
发布错误消息后更新:原始代码中的错误是您首先完成并将每个结果行复制到$data
,但是在您的foreach中您尝试了循环$shots
(再次)并让它调用每个项目$data
。
您可能想要做的是foreach ($data as $item)
,然后从$item
复制属性。
答案 1 :(得分:2)
这样的东西?
<?php
$shots = mysql_query("SELECT * FROM shots") or die(mysql_error());
while($row=mysql_fetch_assoc($shots))
{
$id = $row["id"];
$shotby = $row["shot"];
$passby = $row["pass"];
$time = $row["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
}
?>
答案 2 :(得分:1)
也许你需要另一个闭合支撑? (最后的另一个“}”,我的意思是)。
答案 3 :(得分:0)
您已将数据保存在$ data变量中,但您的foreach使用$ shots变量。
只需将其更改为foreach($ data为$ something)和$ something [“id”](例如)以检索值
答案 4 :(得分:-1)
您正在使用一个变量而不是另一个变量 和许多无用的代码。
虽然你只需要
<?php foreach($data as $row) { ?>
<div class="feedbody">
<div class="title"><?php echo $row['shotby'] ?></div>
<div class="feed-data">:
gets a pass from <span><?php echo $row['passby'] ?</span> and he takes a shot!
</div>
<img class="dot" src="images/dot.png" />
</div>
<?php } ?>