2014-04-24 5 views
1

저는 현재 PHP 스크립트로 작업 중이며이 부분에서 멈추었습니다. 각 행의 정보를 표시하려는 데이터베이스 테이블이 있습니다. 두 개의 드롭 다운 메뉴를 가지고 있는데, 서로 다른 URL을 사용하여 정확히 같은 이름을 갖고 싶습니다. 나는 이것이 가능하다고 가정하고, 나는 PHP로 진보하지 않았기 때문에 잘못된 것을하고있다.동일한 foreach를 여러 번 사용하기

비슷한 질문 이었지만 많이 도움이되는 내용이없는 것 같습니다. 여기

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 루프 작동 루프입니다 올바르게 두 번째 것은 비어 있습니다.

누구든지 도움을받을 수 있다면 미리 감사드립니다.

+1

무슨 * 변수에 fetchAll() 결과를 저장 어떻습니까? * –

+0

@YourCommonSense 사용자 이름이 더 나은 적합하지 않았다 마십시오. – h2ooooooo

+0

아마 버퍼를 되 감을 필요가 있습니다. 여기에 몇 가지 해결책이 있습니다 : http://stackoverflow.com/questions/8823758/how-can-i-rewind-a-pdo-result –

답변

3

$headerstmt->fetchAll()의 결과를 변수에 저장 한 다음 결과 변수를 foreach 루프에 사용해야합니다.

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

} 
foreach($results as $row) { 

} 
foreach($results as $row) { 

} 
+0

굉장한, 완벽하게 작동합니다. 고마워요! – J159753

관련 문제