Aus 2 Datenbanken mit 2 For schleifen, 2 Menüs erstellen

  • Themenstarter Themenstarter ByeBye 8492
  • Beginndatum Beginndatum
B

ByeBye 8492

Moinsen,

hab folgenden Code:

PHP:
	$link = mysql_connect("$server","$user","$passwort") or die (
	"Datenbank zur Zeit nicht erreichbar, <br> bitte später nocheinmal versuchen");
	mysql_select_db("$datenbank", $link) or die ("Datenbank ist nicht vorhanden");

	$sql	= "select kategorie.id,kategorie.name AS Kategorie from kategorie";
	$result	= mysql_query($sql);
	$num	= mysql_num_rows($result);
	
	for($i=0; $num > $i; $i++)
	{
	
		$data = mysql_fetch_array($result);
		echo 	$data["Kategorie"]."<br>";
		$sql  	= "select name,parent_id,id from menue where parent_id = '".$data["0"]."'";
		$result = mysql_query($sql);
		$num	= mysql_num_rows($result);
		
		echo $num;
		for($a=0; $num > $a; $a++)
		{
			$data = mysql_fetch_array($result);
			echo "<a href='design.php?cat=".$data["1"]."&menue=".$data["2"]."'>".$data["0"] ."</a><br>";
			
		}

Ausgegeben kriege ich:

test
2Webmaster
sdf

0

Nur gibt es 2 Kategorie und noch ein weiteres Thema in der anderen KAtegorie, was mache ich falsch?
 
Kleiner tipp:

Du brauchst nicht immer die Records zu zählen und ne for Schleife zu nehmen...

Du kannst auch einfach:
Code:
while($data = mysql_fetch_array($result)) {

}
 
Original geschrieben von Terrance & Philipp
Kleiner tipp:

Du brauchst nicht immer die Records zu zählen und ne for Schleife zu nehmen...

Du kannst auch einfach:
Code:
while($data = mysql_fetch_array($result)) {

}

Hat ich auch erst drinne gehabt, die For Schleife war zu Testzwecken drinne :)



Wobei das immer noch nicht mein Problem löst. Er zeigt immer noch nichts von der 2ten Kategorie an :(
 
Zuletzt bearbeitet von einem Moderator:
mmh, gibt es keine Möglichkeit das zu schaffen?

Ich hatte mal ne Variante, allerdings war die ziemlich lang und ziemlich fehleranfällig.
 
Also wenns hier keiner weiss, kennt Ihr noch Foren wo man auf diese Frage vielleicht ne Lösung kriegt?
 
Problemlösung

Wenn du den Code so umschreibst, dann müsste es eigentlich klappen.

$link = mysql_connect("$server","$user","$passwort") or die (
"Datenbank zur Zeit nicht erreichbar, <br> bitte später nocheinmal versuchen");
mysql_select_db("$datenbank", $link) or die ("Datenbank ist nicht vorhanden");

$sql = "select kategorie.id,kategorie.name AS Kategorie from kategorie";
$result = mysql_query($sql);
$num = mysql_num_rows($result);

for($i=0; $num > $i; $i++)
{

$data = mysql_fetch_array($result);
echo $data["Kategorie"]."<br>";
$sql = "select name,parent_id,id from menue where parent_id = '".$data["0"]."'";
$result2 = mysql_query($sql);
$num = mysql_num_rows($result2);

echo $num;
for($a=0; $num > $a; $a++)
{
$data = mysql_fetch_array($result2);
echo "<a href='design.php?cat=".$data["1"]."&menue=".$data["2"]."'>".$data["0"] ."</a><br>";

}

(Zumindest funktioniert es bei mir) ;)
 
Re: Problemlösung

Original geschrieben von EvilO
Wenn du den Code so umschreibst, dann müsste es eigentlich klappen.

$link = mysql_connect("$server","$user","$passwort") or die (
"Datenbank zur Zeit nicht erreichbar, <br> bitte später nocheinmal versuchen");
mysql_select_db("$datenbank", $link) or die ("Datenbank ist nicht vorhanden");

$sql = "select kategorie.id,kategorie.name AS Kategorie from kategorie";
$result = mysql_query($sql);
$num = mysql_num_rows($result);

for($i=0; $num > $i; $i++)
{

$data = mysql_fetch_array($result);
echo $data["Kategorie"]."<br>";
$sql = "select name,parent_id,id from menue where parent_id = '".$data["0"]."'";
$result2 = mysql_query($sql);
$num = mysql_num_rows($result2);

echo $num;
for($a=0; $num > $a; $a++)
{
$data = mysql_fetch_array($result2);
echo "<a href='design.php?cat=".$data["1"]."&menue=".$data["2"]."'>".$data["0"] ."</a><br>";

}

(Zumindest funktioniert es bei mir) ;)

Danke du bist mein Retter :).

Soetwas ist mir gestern Abend um 0 Uhr nicht mehr hinreichend aufgefallen :)
 
Moinsen,

nu hätte ich noch eine Frage.

Also 2 Ebenen sind nicht genug, ich habe noch eine Dritte Ebene :(.

Die Tabellenstruktur ist folgend:

kategorie:

ID | name | position

Menü:

Id | name | position | parent_id | submenue | show_sub

Beitraege:

bid| name | text | user | datum | menue_id | sub_id


Der Code oben gibt mir aber lediglich die Kategorie und das Menü aus.
Nun will ich aber noch Beiträge dazu haben, diese sollen natürlich nur zum passenden Menüpunkt ausgewählt werden.

Das ist jetzt aber das Problem, da ich da die while schleife nicht hinkriege, der zeigt mir dann immer nur komischerweise 1 einzigen Menüpunkt an :(.

PHP:
	$sql	= "select kategorie.id as ID,kategorie.name AS Kategorie from kategorie";
	$result	= mysql_query($sql);
	$num	= mysql_num_rows($result);
	
	while($data = mysql_fetch_assoc($result))
	{
		echo 	"<table border='0' cellpadding='0' cellspacing='0' width='153'><tr><td class='kategorie'>".$data["Kategorie"]."</td></tr>";
		$sql2  	= "select name,parent_id,id from menue where parent_id = '".$data["ID"]."'";
		$result2 = mysql_query($sql2);
		
		while($data2 = mysql_fetch_assoc($result2))
		{
			$sql3 = 	"select bid, seite from beitraege where menue_id = '".$data2["id"]."';
			$result3 	= mysql_query($sql3);
			while($data3 = mysql_fetch_assoc($result3))
			{
				echo "<tr><td class='auswahl'>:: <a class='link' href='design.php?cat=".$data2["parent_id"]."&menue=".$data2["id"]."&"bid=".$data3["bid"]."'>".$data2["name"] ."</a></td></tr>";
			}
			echo $link;
			
		}
		echo "</table>";
	}

Warum zeigt er mir bei diesem Code, nicht mehr meine gesamten Menü's an`?

Wo liegt mein Fehler jetzt wieder?

EDIT:

Ok, ich hab ma nachgeguckt, er hat mir nur das Untermenue angezeigt wo ich schon nen Beitrag für definiert hatte. Die anderen zeigte er mir nicht an, wie kriege ich es hin, das er es ganz anzeigt?
 
Zuletzt bearbeitet von einem Moderator:
Zurück