我目前正在处理一个PHP脚本,并坚持到这一部分。我有一个数据库表,我想显示每行的信息。我有两个下拉菜单,我想要使用不同的网址具有完全相同的名称。我假设这是可能的,而且我做错了,因为我不是那么先进的PHP。
我发现这个问题很相似,但似乎没有看到任何有用的问题。
Use same foreach multiple times
这是我目前拥有的
返回页首
<?php
require("common.php");
if(empty($_SESSION['user']))
{
header("Location: login.php");
die("Redirecting to login.php");
}
$header = "SELECT id, location FROM table";
try
{
$headerstmt = $db->prepare($header);
$headerstmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
?>
然后这是带有foreach循环的部分
<ul class="nav navbar-nav">
<li class="dropdown <?php if ($page == 'view') {echo 'active';} ?>">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">View <b class="caret"></b></a>
<ul class="dropdown-menu">
<?php foreach ($headerstmt->fetchAll() as $hrow) { ?>
<li><a href="view.php?id=<?php echo $hrow['id'] ?>"><?php echo $hrow['location']; ?></a></li>
<?php } ?>
</ul>
</li>
<li class="dropdown <?php if ($page == 'edit') {echo 'active';} ?>">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Edit <b class="caret"></b></a>
<ul class="dropdown-menu">
<?php foreach ($headerstmt->fetchAll() as $hrow) { ?>
<li><a href="edit.php?id=<?php echo $hrow['id'] ?>"><?php echo $hrow['location']; ?></a></li>
<?php } ?>
</ul>
</li>
</ul>
第一个foreach循环正常工作,但第二个是空白。
如果有人能提供帮助,请提前致谢。
答案 0 :(得分:3)
您应该将$headerstmt->fetchAll()
的结果存储在变量中,然后将结果变量用于foreach循环。
$results = $headerstmt->fetchAll();
foreach( $results as $row ) {
}
foreach( $results as $row ) {
}
foreach( $results as $row ) {
}