Php 多次使用同一个foreach

Php 多次使用同一个foreach,php,foreach,Php,Foreach,我目前正在编写一个php脚本,并停留在这一部分。我有一个数据库表,我想显示每一行的信息。我有两个下拉菜单,我想有一个完全相同的名称,只是一个不同的网址。我假设这是可能的,我做错了什么,因为我对php没有那么先进 我发现这个问题很相似,但似乎没有看到任何帮助 这是我目前拥有的 页首 <?php require("common.php"); if(empty($_SESSION['user'])) { header("Location: login.php"); d

我目前正在编写一个php脚本,并停留在这一部分。我有一个数据库表,我想显示每一行的信息。我有两个下拉菜单,我想有一个完全相同的名称,只是一个不同的网址。我假设这是可能的,我做错了什么,因为我对php没有那么先进

我发现这个问题很相似,但似乎没有看到任何帮助

这是我目前拥有的

页首

<?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>

    您应该将
    $headerstmt->fetchAll()的结果存储在变量中,然后将结果变量用于foreach循环

    $results = $headerstmt->fetchAll();
    foreach( $results as $row ) {
    
    }
    foreach( $results as $row ) {
    
    }
    foreach( $results as $row ) {
    
    }
    

    将fetchAll()result存储在变量中如何?@YourCommonSense您的用户名再合适不过了。也许您需要倒带缓冲区。这里有一些解决方案: