• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[gelöst]While Schleifen lassen sich nicht verschachteln

Status
Für weitere Antworten geschlossen.

CrackPod

Neues Mitglied
Hallo,

ich habe eine Datenbank mit 2 Tabellen:
Code:
navheadlines (
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
name VARCHAR(35) NOT NULL
);
navitems (
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
navid INT NOT NULL,
name VARCHAR(25) NOT NULL DEFAULT 'Link',
url VARCHAR(230) NOT NULL DEFAULT 'http://'
);
Damit möchte ich in der 1. Tabelle meine Überschriften für die Navigation und in der 2. Tabelle meine URLs, deren Namen und die Id der Überschrift, zu welcher die Links gehören, speichern.
Ich möchte logischerweise die 1. Überschrift, danach die dazugehörigen Links ausgeben lassen. Darauf die 2. Überschrift mit Links usw usf. Ich wollte das mit folgendem Code bewerkstelligen:
[php:1:4fc0141884]<?php
$dbConn->dbQuery('SELECT
id,
name
FROM
navheadlines'); #Abfragen der Navigationheadlines von der Datenbank
while($Nav = mysql_fetch_object($dbConn->query)) {
echo $Nav->name;

$dbConn->dbQuery("SELECT
id,
name,
url
FROM
navitems
WHERE
navid = '{$Nav->id}'"); #Abfragen der Navigationitems
while($navItems = mysql_fetch_object($dbConn->query)) {
echo $navItems->name;
}
}
?>[/php:1:4fc0141884]
Jedoch wird nur die 1. Überschrift mit ihren Links ausgegeben und der Rest bleibt in der Datenbank, woraus ich schliese, dass die 1. While Schleife nach der Beendigung der 2. einfach abbricht.
Kann das sein? Darf man 2 While Schleifen nicht verschachteln, oder hab ich da einfach nur nen logischen Fehler drinnen bzw was vergessen?

Greetz
 
deine dbQuery funktion ueberschreibt das existierende Result Object . dadurch kommt die 1. Schleife aus dem takt und das wars.

einfach statt
[php:1:b4f8a23547]
while($Nav = mysql_fetch_object($dbConn->query)) {
[/php:1:b4f8a23547]
[php:1:b4f8a23547]
$resultirgendwasbla = $dbConn->query;
while($Nav = mysql_fetch_object($resultirgendwasbla)) {
[/php:1:b4f8a23547]
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben