aus klappbares tree menü

creativeheadz

Erfahrenes Mitglied
hey leute ich brauch ein menü wie es auch http://www.bmradio.de hat.

-link
-link

und auf einen klick auf diesen link:

-link
::unterlink1
::unterlink2
::unterlink3
::unterlink4
-link

ich hab schon gegoogelt aber nix simples gefunden um es in mein bestehendes system einzu bauen. bisher lese ich meine links asu einer datenbank

PHP:
      <?php 
	  
$abfrage = "SELECT * FROM box";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$boxzu= $row->id;

echo"
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"rahmen\">
      <tr>
      <td bgcolor=\"#C2C4D2\">  <a href=\"index.php?dropid=$row->id\">$row->box</a></td>
      </tr>";
	  
echo" <tr>
        <td>";
		
$abfrage2 = "SELECT * FROM kategorien WHERE boxid='$boxzu'";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))

{
echo" ::  <a href=\"index.php?page=show_cat&id=$row2->id\">$row2->name</a><br>";
}
		
echo"
</td>
</tr>
 </table>

";


}
?>
 
HTML:
<a href="deinScript.php?menu_item=1">Link</a>

Im Script dann:
PHP:
$menu_item = $_GET['menu_item'];

while($row = mysql_fetch_object($ergebnis)){
 echo "...";

 if($row->id == $menu_item){
  $query = mysql_query("SELECT * FROM `menu_items` WHERE `id` = $menu_item");
  // usw...
 }
}

Du übergibst also per $_GET['menu_item'] den aktuell aufgerufenen Menüpunkt, und dann kommt die IF-Schleife. Wenn die ID gleich dem Punkt ist, werden die Unterpunkte aus der Tabelle `menu_items` (oder so...) geholt, die zum aktuellen Punkt gehören.
 
Zuletzt bearbeitet:
:confused: Irgend wie gehts net, es kommt auch kein fehler... die navigatio verschwindet einfach nur komplett

PHP:
 <?php 
	  $menu_item = $_GET['menu_item'];
	  
$abfrage = "SELECT * FROM box";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$boxzu= $row->id;

$abfrage2 = "SELECT * FROM kategorien WHERE boxid='$boxzu' && status=1";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))

{

if($row->id == $menu_item){

echo"
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"rahmen\">
      <tr>
      <td bgcolor=\"#C2C4D2\">  <a href=\"index.php?menu_item=$row2->id\">$row->box</a></td>
      </tr>";
	  
echo" <tr>
        <td>";
		
$abfrage2 = "SELECT * FROM kategorien WHERE boxid='$boxzu' && status=1";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))

{
echo" ::  <a href=\"index.php?page=show_cat&id=$row2->id\">$row2->name</a><br>";
}
		
echo"
</td>
</tr>
 </table>

";
}
}
}
?>
 
Wie sieht denn deine DB aus. Sehe ich das richtig, dass `box` die Menüeinträge und `kategorien` die Unterpunkte enthält? Oder wie sieht das aus?
 
ja genau richtig:)

CREATE TABLE `box` (
`id` int(11) unsigned NOT NULL auto_increment,
`box` varchar(250) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=6 ;


CREATE TABLE `kategorien` (
`id` int(22) NOT NULL auto_increment,
`name` varchar(222) collate latin1_general_ci NOT NULL,
`inhalt` text collate latin1_general_ci NOT NULL,
`boxid` varchar(250) collate latin1_general_ci NOT NULL,
`kurztext` text collate latin1_general_ci NOT NULL,
`thema` varchar(250) collate latin1_general_ci NOT NULL,
`newid` varchar(250) collate latin1_general_ci NOT NULL,
`bild` varchar(250) collate latin1_general_ci NOT NULL,
`untertitel` varchar(250) collate latin1_general_ci NOT NULL,
`status` varchar(222) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=29 ;
 
PHP:
<?php     
$menu_item = (int)$_GET['menu_item'];
	  
$abfrage = "SELECT * FROM box";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$boxzu= $row->id;

echo"
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"rahmen\">
      <tr>
      <td bgcolor=\"#C2C4D2\">  <a href=\"index.php?dropid=$row->id\">$row->box</a></td>
      </tr>";
      
echo" <tr>
        <td>";
     
if($menu_item == $boxzu){   
	$abfrage2 = "SELECT * FROM kategorien WHERE boxid='$boxzu'";
	$ergebnis2 = mysql_query($abfrage2);
	while($row2 = mysql_fetch_object($ergebnis2))
	{
		echo" ::  <a href=\"index.php?page=show_cat&id=$row2->id\">$row2->name</a><br>";
	}
}
        
echo"
</td>
</tr>
 </table>

";
}
?>

Probiers mal so wie oben. Musst $menu_item im Link per GET übergeben.

mfg mAu
 
Zurück