mom ich hab da mal nen tut für dich

das ist so nen menü wie du es haben willst
musste selber sowas mal schreiben
das sollte dir weiterhelfen auch vom verständniss her:
Wir benötigen zuerst ein Tabelle in der Datenbank:
Code:
Code:
CREATE TABLE `menue_navi_kat` (
`Id` int(11) NOT NULL auto_increment,
`Name` varchar(25) NOT NULL default '',
`parent_id` varchar(25) NOT NULL default '',
`level` varchar(25) NOT NULL default '',
`link_artikel` varchar(25) NOT NULL default 'link',
`artikel_id` varchar(25) NOT NULL default '',
`target` varchar(25) NOT NULL default '_self',
PRIMARY KEY (`Id`)
) TYPE=MyISAM AUTO_INCREMENT=62 ;
unter parent_id wir immer die ID des übergeordneten Links gespeichert, also quasi die vater_id.
beispiel:
wir haben folgendes menü:
Code:
Code:
Home(id=1)
Fun(id=2)
Games(id=3)
wenn wir nun auf Fun klicken
übergeben wir die id 2 mit.
nun wird geschaut wo überall die parent_id = 2 ist.
dann sieht es aufgeklappt so aus:
Code:
Code:
Zurück
Bilder
Videos
vom code her sieht das so aus beim Hauptmenü(oberste ebene):
PHP:
PHP-Code:
$sql = "SELECT
*
FROM
menue_navi_kat
WHERE
parent_id = 1;";
$hauptmenuelinks = mysql_query($sql) OR die(mysql_error());
echo "[url='index.php']Home[/url]";
echo " ";
while($row = mysql_fetch_object($hauptmenuelinks))
{
if($row->link_artikel=='link')
{
echo "[url='navi.php?show_kat=$row->Id&back=0']$row->Name[/url]";
echo " ";
}
if($row->link_artikel=='artikel')
{
echo "[url='main.php?show_kat=$row->Id']$row->Name[/url]";
echo " ";
}
}
die navi.php also das menü links baut sich dann auf, deren code sieht so aus:
PHP:
PHP-Code:
$sqlback = "SELECT
*
FROM
menue_navi_kat
WHERE
id ='".$show_kat."'";
$hauptmenuelinksback = mysql_query($sqlback) OR die(mysql_error());
$rowback = mysql_fetch_object($hauptmenuelinksback);
echo "[url='navi.php?show_kat=$rowback->parent_id'][b]Zurück[/b][/url]";
$sql = "SELECT
*
FROM
menue_navi_kat
WHERE
parent_id ='".$show_kat."'
ORDER BY Name ASC
";
$hauptmenuelinks = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_object($hauptmenuelinks))
{
echo "<tr>";
echo "<td width=\"150\" align=\"center\">";
if($row->link_artikel=='link')
{
echo "[url='navi.php?show_kat=$row->Id']target'>$row->Name[/url]";
}
elseif($row->link_artikel=='artikel')
{
echo "[url='main.php?action=artikel&showartikel=$row->artikel_id']$row->Name[/url]";
}
}
hier finden 3unterschiedliche aktionen statt
1.Zurück link wird erstellt
2.untermenue wir erstellt
3.wird unterschieden ob der link eine ebene weiter runter geht oder ob er an einen artikel verweisst.
der zurück button funktionier so :durch die variable $shot_kat übergeben wir ja die ID des übergeordneten links.
nun fragen wir ab wo id = $shot_kat
dann speichern wir dessen parent_id in der var show_kat also quasi so:
PHP:
PHP-Code:
$sqlback = "SELECT
*
FROM
menue_navi_kat
WHERE
id ='".$show_kat."'";
$hauptmenuelinksback = mysql_query($sqlback) OR die(mysql_error());
$rowback = mysql_fetch_object($hauptmenuelinksback);
echo "[url='navi.php?show_kat=$rowback->parent_id'][b]Zurück[/b][/url]";
2.das untermenü wird erstellt mit der unterscheidung ob der link ein weiteres untermenüaufbau oder zu einem artikel verweißt:
PHP:
PHP-Code:
$sql = "SELECT
*
FROM
menue_navi_kat
WHERE
parent_id ='".$show_kat."'
ORDER BY Name ASC
";
$hauptmenuelinks = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_object($hauptmenuelinks))
{
echo "<tr>";
echo "<td width=\"150\" align=\"center\">";
if($row->link_artikel=='link')
{
echo "[url='navi.php?show_kat=$row->Id']target'>$row->Name[/url]";
}
elseif($row->link_artikel=='artikel')
{
echo "[url='main.php?action=artikel&showartikel=$row->artikel_id']$row->Name[/url]";
}
}
durch die übergebene variable show_kat findet auch diesmal die selektierung in der datenbank statt.
nur fragen wir nicht diesmal wo Id= shot_kat sondernwo parent_id = shot_kat.
PHP:
PHP-Code:
$sql = "SELECT
*
FROM
menue_navi_kat
WHERE
parent_id ='".$show_kat."'
ORDER BY Name ASC
";
und lesen diese alphabetisch aus.
in dem feld link_artikel in der datenbank steht etweder link oder artikel.
nun findet ein vergleich statt ob der link auf einen artikel verweist oder auf ein weiteres untermenü:
PHP:
PHP-Code:
$hauptmenuelinks = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_object($hauptmenuelinks))
{
echo "<tr>";
echo "<td width=\"150\" align=\"center\">";
if($row->link_artikel=='link')
{
echo "[url='navi.php?show_kat=$row->Id']target'>$row->Name[/url]";
}
elseif($row->link_artikel=='artikel')
{
echo "[url='main.php?action=artikel&showartikel=$row->artikel_id']$row->Name[/url]";
}
}