"While Loop" binnen een "While Loop"

Status
Niet open voor verdere reacties.

roben

Gebruiker
Lid geworden
4 dec 2008
Berichten
65
hallo allemaal,

ik heb een vraag over een while loop
dit is de code:

PHP:
//get nav static page 
$strSQL = "SELECT id, navTitle FROM pages WHERE online=1 ORDER BY id ASC";
$result_header_topnav = $objDB->sqlExecute($strSQL);

//get nav static page sub
$strSQLsub = "SELECT id, navTitle, pageId FROM pages_sub WHERE online=1 ORDER BY id ASC";
$result_header_topnav_sub = $objDB->sqlExecute($strSQLsub);



PHP:
			<?php
		
		while($objHeaderTopNav = $objDB->getObject($result_header_topnav)) {
						
			$strUrl = rewriteUrl($objHeaderTopNav->id,$objHeaderTopNav->navTitle,'','','','','','',$objDB);
				echo '<li id="last"><a href="'.$strUrl.'">'.$objHeaderTopNav->navTitle.'</a>'.CRLF;
				
				echo'<ul>';	
						
					
			while($objHeaderTopNavSub = $objDB->getObject($result_header_topnav_sub)) {
						
							
				if ($objHeaderTopNavSub->pageId == $objHeaderTopNav->id) {
				$strUrlSub = rewriteUrl($objHeaderTopNavSub->id,$objHeaderTopNavSub->navTitle,'','','','','','',$objDB);
				echo '<li><a href="'.$strUrlSub.'">» '.$objHeaderTopNavSub->navTitle.'</a></li>'.CRLF;
				}
							
					
						
			}
				echo'</ul></li>';	
								
			}
?>

Hij voert de 1e keer de binnenste while loop wel uit, maar daarna krijg ik geen submenu's meer. Is er een manier om dit op te lossen?

groeten....
 
getObject kun je maar 1 keer aanroepen per rij; daarna wordt hij verwijderd uit de result set.

Wat je moet doen is alle resultaten voor je eerste while loop ophalen, alles in een array pompen, en daar bij in je while loop met een foreach overheen gaan.

PHP:
// loop eerst over alle resultaten heen
$resultaten = array();
// zolang er nog een resultaat is,
while($objHeaderTopNavSub = $objDB->getObject($result_header_topnav_sub)) {
  // bewaar ze in een nieuwe lijst
  $resultaten[] = $objHeaderTopNavSub;
}

// loop nu over de hoofd menu's heen
while($objHeaderTopNav = $objDB->getObject($result_header_topnav)) {
  // maak de hoofd entry
  foreach ( $resultaten as $resultaatobject ) {
    // bouw hier je submenu, inclusief de 'juiste pagina' check, op.
  }
}

Als je nog niet begrijpt, moet je dat even aangeven dan probeer ik het beter uit te leggen :)
 
Laatst bewerkt:
Je bent een held :)

Hij doet het helemaal top :)

Nu kan ik weer vrolijk verder :)

Bedank he :) groetjes
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan