PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Haupt- Untermenü dynamisch aus Datenbank ala scipmanager (http://www.selfphp.de/forum/showthread.php?t=25992)

schlappi 20.04.2017 10:03:32

Haupt- Untermenü dynamisch aus Datenbank ala scipmanager
 
Hallo Gemeinde,

ich steh vor einem Problem wo einfach nicht mehr weiter komme. Ich suche nach Lösung für ein Dynamisches Menü mit Untermenü gefüttert aus der Datenbank.
Bestes Beispiel einfach mal gesagt Verein 1 oder Verein 2
Diese Seiten bassieren auf den scipmanager für Vereine wo ich die Menüsteuerung interessant finde.
Beim Klick auf den ersten Hauptmenüpunkt gehts passende Untermenü auf aber auch gleichzeitig schon die erste Seite vom Untermenü. Allerdings soll das ganze dynamisch von der Datenbank kommen da sich die Anzahl der Untermenüpunkte auch ändern kann.

Da auch bei den Seiten nur der passende Inhalt included wird und ich auch für die Zukunft keine Lust habe jede Seite zu ändern wenn sich eine Fuß- oder Kopfzeile ändert, würde ich den Inhalt der geladen wird mit Include lösen wollen.

Den einzelnen Inhalt über Include bekomm ich soweit auch hin

Code für Inhalt mitte
PHP-Code:

<?PHP
     
if($_GET["id"])
     {    
       include(
$_GET["id"]);
     }
     else
     {
       include(
"includes/index.php");    
     }    
    
?>

$_GET['id'] kommt von der Untermenue.php
PHP-Code:

<?php
$query_untermenu 
"SELECT 
                        menu.name,  
                        menu.sortieren,
                        menu.url 
                    FROM 
                        menu 
                    WHERE 
                        menu.parent = '1' AND 
                        menu.anzeigen = 'ja' 
                    ORDER BY 
                        menu.sortieren ASC"
;

$untermenu mysql_query($query_untermenu) or die(mysql_error());

$siteRoot="?id=";

while(
$row mysql_fetch_assoc($untermenu))
{
    
$menuStruct[] = array($row['name'],'root'=>$siteRoot.$row['url'
                         );
}

$aktuell $HTTP_GET_VARS["id"]; 
$url $siteRoot.$aktuell;

foreach(
$menuStruct as $key=>$value)
{
  if(
$url == $value['root'])
  {
    echo 
"<a  class=\"hauptmenu\" href=".$value['root'].">nur ein test</a>\n";
  }
  else
  {
    echo 
"<a class=\"hauptmenu\" href=".$value['root'].">$value[0]</a>\n";
  }
}
?>

Das ganze funktioniert soweit auch ganz gut, ohne das jedes mal die komplette Seite neu geladen wird.
Das erstes Problem ist einfach, dass ich die zugehörigkeit der Untermenüs "parent" nicht dynamisch zugeordnet bekomme vom Hauptmenü

Mein Hauptmenü pflege ich im Moment über die hauptmenue.php ein
PHP-Code:

<?php 

$query_hauptmenu 
"SELECT 
                        menu.name,  
                        menu.sortieren,
                        menu.url 
                    FROM 
                        menu 
                    WHERE 
                        menu.parent = '0' AND 
                        menu.anzeigen = 'ja' 
                    ORDER BY 
                        menu.sortieren ASC"
;
$hauptmenu mysql_query($query_hauptmenu) or die(mysql_error());

?>
<table>
    <tr>
    <?php while ($row mysql_fetch_assoc($hauptmenu)) { ?>
        <td>
        <a href="<?php echo $row['url']; ?>"><?php echo $row['name']; ?></a></td>
    <?php ?>
    </tr>
</table>

parent="0" in der Datenbank ist quasi mein Hauptmenü, die Eltern sozusagen.

Meine Datenbank sieht momentan wie folgt aus

ID | Name | Parent | url | sortieren | anzeigen
1 | menu 1 | 0 | url.php | 1 | 1
2 | menu 2 | 0 | url.php | 2 | 1
3 | menu 3 | 0 | url.php | 3 | 1
4 | umenu1 | 1 | url.php | 1 | 1
5 | umenu2 | 1 | url.php | 1 | 1
ect...

im moment finde ich einfach keine Lösung das Untermnü dort mit einzubinden, dass es wie wie auf den oben angegebenen verlinkten Seiten aussieht.
Ich hoffe ihr könnt mir ein wenig weiterhelfen.

vt1816 20.04.2017 10:36:37

AW: Haupt- Untermenü dynamisch aus Datenbank ala scipmanager
 
Schau Dir mal Nested Sets an bzw. suche danach hier im Forum.

schlappi 21.04.2017 16:17:42

AW: Haupt- Untermenü dynamisch aus Datenbank ala scipmanager
 
Hallo und danke erstmal für deine schnelle Antwort. Auf nested set bin ich auch schon gestoßen, aber ich glaube das ist für mein kleines vorhaben nicht direkt das richtige. Habe auch schon viel in Foren gelesen das es für sehr große und komplexe Bäume ist, und ich mit meinen klein 4-5 Einträgen auf 2 Ebenen nicht gerade dafür gedacht ist. :(

vt1816 21.04.2017 16:37:06

AW: Haupt- Untermenü dynamisch aus Datenbank ala scipmanager
 
Was für "Große" gut sein soll, muss/kann für kleine(re) Projekte nicht schlecht sein.

Nur Mut - es ist noch kein Meister vom Himmel gefallen. Dadurch hast Du auch die Option, wenn Dein Projekt mal größer wird, nicht wieder von vorne anfangen zu müssen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:28:38 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.