cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68122
Mitglieder online: 8
Gäste online: 4
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: [feddisch]php dynamisches menü

Thread: [feddisch]php dynamisches menü


22.07.2008 21:19 Uhr

 

Status: offline
hi!
ich habe ein menü programmiert, bei dem die unterpunkte eines menüpunkts angezeigt werden sollen, wenn man auf den hauptmenüpunkt klickt.
wenn ich auf einen unterpunkt klicke sollten die restlichen unterpunkte natürlich auch angezeigt werden. Dies will bei mir aber einfach nicht funktionieren...
hier der code:
wenn man einen unterpunkt anklickt werden die unterpunkte nicht mehr angezeigt. (edditler.funpic.de/cms/)
der code:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
<ul>
<?php
    $sql = "SELECT * FROM cms_menu WHERE `ziel` = '$page'";
    $res = query($sql);
    while($row = mysql_fetch_assoc($res)) {
        $pid = $row['pid'];
    }
    // aktuelle pid ^
    $menu = "SELECT * FROM `cms_menu` WHERE pid = 0";
    $resmenu = query($menu);
    while($row = mysql_fetch_assoc($resmenu)) {
        $target = "";
        if($row['blank'] == 1) { $target = ' target="_blank"'; }
        echo '<li><a href="?page='.$row[ziel].'"'.$target.'>'.$row[name].'</a></li>';        
        // Unterpunkte
          if($page == $row['ziel']) {  
            $pidsql = "SELECT * FROM cms_menu WHERE pid = '".$row['id']."'";
            if($pid != 0) { $pidsql =  $pidsql." OR pid = '$pid'"; }
            $pidres = query($pidsql);
            if(mysql_num_rows($pidres) == 0) {  }
            else { echo "<ul>"; }
            while($row2 = mysql_fetch_assoc($pidres)) {
                $target2 = "";
                if($row2['blank'] == 1) { $target2 = ' target="_blank"'; }
                echo '<li><a href="?page='.$row2[ziel].'"'.$target2.'>'.$row2[name].'</a></li>';
            }
            if(mysql_num_rows($pidres) == 0) {  }
            else { echo "</ul>"; }
          }
    }
?>
</ul>
2 mal bearbeitet
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
22.07.2008 21:50 Uhr

 

Status: offline
Ich hab sowas auch mal Programmiert:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
  //**************************************************************************************
  //**************************************************************************************
  //********************         find_parents($id)             ***************************
  
  function find_parents($id)
  {
    while ($id != 0)
    {
      $anfrage    = "SELECT * FROM `items` WHERE `id` = '".$id."'";
      $ergebnis   = mysql_query($anfrage);
      $anz        = mysql_num_rows($ergebnis);
      if ($anz != 0)
      {
        $zeile    = mysql_fetch_row($ergebnis);
        $id       = $zeile[2];
        $count    = count($parents);
        $parents[$count]  = $id;
      }
    }
    return $parents;
  }
  
  
  //**************************************************************************************
  //**************************************************************************************
  //************         create_list($parents,$par_id,$id)            ********************
  
   function create_list($parents,$par_id,$id)
  {
    global $root,$ret;
    $anfrage    = "SELECT * FROM `items` WHERE `parent` = '".$par_id."'";
    $ergebnis   = mysql_query($anfrage);
    $anz        = mysql_num_rows($ergebnis);
    if ($anz>0)
    {
      for($a=0;$a<$anz;$a++)
      {
        $zeile=mysql_fetch_row($ergebnis);
        if($zeile[0] == $id)
        {
          $ret.= "<li style=\"list-style-type : circle\">";
          $ret.= $zeile[1];
          //Hier kommen dann die Eintr&auml;ge Rein!
          $ret.= "<ul class=\"tree\">";
          create_list($parents,$zeile[0],$id);
          $ret.= "</ul>";
          $ret.= "</li>";
        }
        elseif(array_search($zeile[0],$parents) !== false)
        {
          $ret.= "<li style=\"list-style-type : circle\">";
          $ret.= "<a href=\"".$root."list/".$zeile[0]."/\">";
          $ret.= $zeile[1];
          $ret.= "</a>";
          //Hier kommen dann die Eintr&auml;ge Rein!
          $ret.= "<ul class=\"tree\">";
          create_list($parents,$zeile[0],$id);
          $ret.= "</ul>";
          $ret.= "</li>";
        }
        else
        {
          $ret.= "<li>";
          $ret.= "<a href=\"".$root."list/".$zeile[0]."/\">";
          $ret.= $zeile[1];
          $ret.= "</a>";
          $ret.= "</li>\n";
        }
      }
    }
    return $ret;
  }
Mal ne Frage:
Hast du query selber definiert
PHP:
1
$res = query($sql);
?
Das heißt doch mysql_query()
2 mal bearbeitet
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
22.07.2008 22:18 Uhr

 

Status: offline
hi!
die query() sieht ungefähr so aus:
PHP:
1
2
3
4
5
 
function query($sql) {
    $res = mysql_query($sql) or die("Fehler in: $sql | ".mysql_error());
    return $res;
}
2 mal bearbeitet
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
22.07.2008 23:44 Uhr

 

Status: offline
so... weils mir zu doof wurde zu warten hab ich das ganze neu gemacht.
ich bin mir noch nicht sicher wieso es so passt. es tut aber.
code:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<ul>
<?php
    $hauptpunkte = "SELECT * FROM cms_menu WHERE pid = 0";
    $hauptpunkteres = query($hauptpunkte);
    while($hpunkte = mysql_fetch_assoc($hauptpunkteres)) {
        if($hpunkte['blank']) { $target = ' target="_blank"'; }
        echo '<li><a href="?page='.$hpunkte['ziel'].'"'.$target.'>'.$hpunkte['name'].'</a></li>';
        //Jetzt wurden die Hauptpunkte ausgegeben!
        // --------
        // Weiter mit den Unterpunkten
        $unterpunkte = "SELECT * FROM cms_menu WHERE pid = '".$hpunkte['id']."'";
        $unterpunkteres = query($unterpunkte);
        if($page == $hpunkte['ziel']) {
            if(mysql_num_rows($unterpunkteres)) { echo "<ul>"; }
            while($unterp = mysql_fetch_assoc($unterpunkteres)) {
                if($unterp['blank']) { $target = ' target="_blank"'; }
                echo '<li><a href="?page='.$unterp['ziel'].'"'.$target.'>'.$unterp['name'].'</a></li>';
            }
            if(mysql_num_rows($unterpunkteres)) { echo "</ul>"; }
        }
        // Die eine Art Unterpunkte auszugeben
        // --------
        // Jetzt kommt die zweite
        // // Funktioniert nur, wenn die aktuelle pid nicht 0 ist
        $sql = "SELECT * FROM cms_menu WHERE ziel = '$page'";
        $res = query($sql);
        $row = mysql_fetch_assoc($res);
        $aktpid = $row['pid'];
        if($aktpid != 0 && $hpunkte['id'] == $aktpid) {
            $unterpunkte = "SELECT * FROM cms_menu WHERE pid = '".$aktpid."'";
            $unterpunkteres = query($unterpunkte);
            if(mysql_num_rows($unterpunkteres)) { echo "<ul>"; }
            while($row = mysql_fetch_assoc($unterpunkteres)) {
                echo '<li><a href="?page='.$row['ziel'].'"'.$target.'>'.$row['name'].'</a></li>';
            }
            if(mysql_num_rows($unterpunkteres)) { echo "</ul>"; }
        }
    }
?>
</ul>
es hat nicht gefunkt bis ich && $hpunkte['id'] == $aktpid unten hinzugefügt habe...

cYa
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
Ähnliche Threads Forum Ähnlichkeitsgrad
 [gelöst] Problem: Menü nach best. Zeit ausblenden Website & Webprogrammierung 1
 [gelöst]php menü aus db Website & Webprogrammierung 1
 Kleines Javascript-Problem mit Menü Website & Webprogrammierung 1
 PHP: Dynamisches Drop Down Menü - Auslesen der Datenbank Website & Webprogrammierung 1
 PHP-Chat; DB oder txt? Traffic? Website & Webprogrammierung 1
 avachanger keine php unterstützung Website & Webprogrammierung 1
 [gelöst] Content-Type per .htaccess ändern Website & Webprogrammierung 1
nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung