php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.06.2005, 16:29  
Gast
 
Beiträge: n/a
Standard Baumstruktur und Array Fehler

Hallo Leute,
mir tut es jetzt schon leid, dass ich damit belästigen muss. Aber Ihr könnt mir wirklich helfen.

Ich suche schon den ganzen Tag diesen bekloppten Fehler und weiß nicht was ich noch machen soll. Das Internet habe ich auch schon durchsucht aber mit wenig Erfolg.
Die Tabellle ist so aufgebaut:
id / parentid/ name / level/ leaf

Die Fehler Meldung ist folgende:
Zitat:
Undefined offset: 2 in /var/www/virtual/xxx.xxx.com/admin/tree.php on line 63
Ihr würdet mir damit wirklich helfen ! Danke im vorraus. Bin verzweifelt.

emu
PHP-Code:
<?PHP 
                            $link 
mysql_pconnect("$db_host","$db_user""$db_pwd"); 
                            
$err  mysql_select_db("$db_database",$link); # das sollte klar sein wir rufen unsere db an. 
                            
                            # und hier kommt der code kurz aber schwer zu verstehen ... 
                            
function baum($vater,$lpos#vater welches menu wird gezeigt ; in lpos wird meine liste aufgebaut für den nächsten klick 
                            

             
                  global 
$link;  # Der Link zur DB durch global auch in der Funktion bekannt. 
                                
global $wahl;  # hier sind als Array die ids drin die aufgeklappt sind (kommt aus der var pos) 
                                
static $ebene 0# mit static erstelle ich eine Variable, die beim erneuten 
                                                    # Aufruf der Funktion den Wert aus der Vorgängerfunktion behält. 
                                                    # Die ist wichtig für die Rekursion. Der Startwert ist 0 und der 
                                                    # wird hochgezählt beim Neuaufruf. Wenn ich also im Menu bei Apfel bin, 
                                                    # ist der Wert bei 1. 
                             
if(isset($_GET['id']))
                {
                  
$id $_GET['id'];
                }
                else
                {
                  
$id 0;
                }
                                
$erg[$ebene] = mysql_query("SELECT * FROM `newsfeed-cat` WHERE `parentid` = '$vater' ORDER BY name ASC",$link); 
                                
$menge mysql_num_rows($erg[$ebene]); 
                                print(
mysql_error());
                                
# Das ist auch noch klar. Lese das aktuelle Menu aus der Datenbank aus und starte eine Schleife ... 
                                
for ($lo=0;$lo<$menge;$lo++) { 
                                    
$row mysql_fetch_row($erg[$ebene]);    # Den Menu Eintrag auslesen, in $row[1] 
                                                                            # ist ja der menueintrag als text .. 
                                    
$menu "<a href=\"tree.php?id=$id&pos=".$lpos."|".$row[0]."&pos2=".$_GET['pos']."\">[img]gfx/plus.gif[/img]</a>&nbsp<a href=\"javascript:cat('".$row['0']."')\">".$row['2']."</a>
\n"
;
                                    
# Hier bastel ich den Link zusammen. Am schwersten zu verstehen ist wohl 
                                    # pos=$lpos|$row[0], ich werde noch näher darauf eingehen. 
                                    
if ($ebene 0) {    # Hier rücke ich einfach nur ein, je tiefer ich im Menu(Rekursion) 
                                                        # bin, umso mehr Leerzeichen vorne dran 
                                        
echo str_repeat("",$ebene); 
                                        echo (
"&raquo;");
                                    } 
                                    echo 
$menu
                                    if (
$row[0] == $wahl[$ebene+1]) { # Hier folgt der Aufruf der Funktion (ab in die Rekursion) 
                                        
$ebene++; # ein Level hoch 
                          
$value $row[0];
                                        
baum($row[0],$lpos."|$value"); 
                                        
$ebene--; # und wieder ein Level runter 
                                    

                                } 
                            } 
                             if(!isset(
$_GET['pos']))
                {
                  
$pos 0;
                }
                else
                {
                                
//$id = $_GET['id'];
                                
$pos $_GET['pos'];
                }
                            
$wahl explode("|",$pos); # aus meiner pos mache ich ein array wahl - wahl[1] hat inhalt 1 
                            
baum(1,""); # starte die Funktion, liste alles auf was als parent 0 hat
            
?>
Code:
        if ($row[0] == $wahl[$ebene+1])
das ist die Zeile die harkt..
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.06.2005, 16:33  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

bitte editieren und statt [ code ] - tags die [ php ] - tags benutzen. ist nicht lustig ohne syntax-highlighting.

grüße
axo
axo ist offline  
Alt 07.06.2005, 16:57  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

der fehler sagt, dass eben dieser index deines arrays nicht existiert, kannst du vieleicht mal noch die zeile im quelltext kenntlich machen ?
robo47 ist offline  
Alt 07.06.2005, 17:09  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

kann immer noch keine sau lesen, weils scheisse eingerueckt is.

problem: woher kommt die variable $wahl, bzw. wo wird sie gefuellt. sie wird nur definiert mit einem hiweis auf die "var pos", die ich aber nich finden kann.
da gibts nur $lpos, was genau steht denn da drin ?
__________________
Was ist validität?
fantast ist offline  
Alt 07.06.2005, 17:25  
Gast
 
Beiträge: n/a
Standard

Die Variablen Pos wird per GET Parameter übergeben. Das sind halt die aktuellen Positionen im Baum.
 
Alt 07.06.2005, 17:37  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

also dann beschreib bitte nochmal welche variablen vorhanden sind, wie genau die funktion aufgerufen wird und welche werte die argumente haben.
__________________
Was ist validität?
fantast ist offline  
Alt 07.06.2005, 18:31  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

zeig mal einen var_dump() von $wahl

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq ist offline  
Alt 08.06.2005, 08:15  
Gast
 
Beiträge: n/a
Standard da...

Folgendes kommt bei var_dump raus..
Code:
array(1) { [0]=>  string(1) "0" }
 
Alt 08.06.2005, 12:13  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard Re: da...

Zitat:
Zitat von emu
Code:
array(1) { [0]=>  string(1) "0" }
In dem Array ist also genau ein Wert, nämlich an $wahl[0].
Was glaubst Du, sollte passieren, wenn Du versuchst, auf $wahl[2] zuzugreifen?
__________________
mod = master of disaster
Waq ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array aus DB, ergibt Fehler kazuya PHP Tipps 2008 2 01.07.2008 11:28
Fehler bei Sitemap-Generierung PHS PHP Tipps 2008 1 21.04.2008 13:40
Array per Post, Fehler bei unserialize edv-rs PHP Tipps 2006 3 19.10.2006 11:04
Sortieralgo: Plötzlich keinen Zugriff mehr auf Daten Melchior PHP-Fortgeschrittene 8 19.09.2006 23:50
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Ordnerinhalt in Array - Fehler PHP Tipps 2005-2 5 09.09.2005 09:26
Besser Programmieren (!?) PHP Tipps 2005 12 04.05.2005 20:46
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
Was ist hier mit Schleife und mehrdimensionalen Array falsch PHP Tipps 2004 8 25.10.2004 14:02
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
assoziatives Array aus 2 Spalten aus Mysql-Tabelle PHP Tipps 2004 2 14.06.2004 13:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array menu vater, array baumstruktur, baumstruktur in array, baumstruktur array, array als baumstruktur php, baumstruktur aus array erzeugen, virtulle baumstruktur mit php, virtuelle baumstruktur php, php array baumstruktur, baumstruktur aus db in array

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.