php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.02.2006, 13:24  
mqs
Erfahrener Benutzer
 
Registriert seit: 31.08.2007
Beiträge: 179
mqs befindet sich auf einem aufstrebenden Ast
Standard aussetzer

Hab da eine Seite bei der habe ich eine Menüausgabe mit einer rekursiven schleife und eine normale ausgabe aus der datenbank...

und da kommt es vor wenn ich eine seite aufrufe, dass die seite länger zum laden braucht.. (lokal) 2-4 sekunden und teilweise ist es auch so dass ich eine fehlerseite bekomme, die man bekommt wenn die seite nciht vorhanden ist (Die Seite kann nicht angezeigt werden) wenn ich dann auf F5 zum aktualisiern drücke dann wird die seite wieder normal angezeigt...

woran kann das liegen?
mqs ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.02.2006, 14:08  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Sollen wir den Code raten?
Corvin ist offline  
Alt 28.02.2006, 14:10  
Gast
 
Beiträge: n/a
Standard

Zeig mal einwenig Code und sag mal wieviele Datensätze es sind
 
Alt 28.02.2006, 14:26  
mqs
Erfahrener Benutzer
 
Registriert seit: 31.08.2007
Beiträge: 179
mqs befindet sich auf einem aufstrebenden Ast
Standard

achso hab eher gedacht dass es ein allgemeiner fehler sein könnte.. also:

Code für die rekursive schleife der ausgabe des menüs.. ich denk mir hier liegt das hauptproblem:

PHP-Code:
    function get_pos($who)
    {    global 
$db_kategorien;
        global 
$pos;
        global 
$parent;
        
$ergebnis mysql_query("SELECT * FROM $db_kategorien WHERE id='$who' AND anzeigen='1'");
        while(
$row mysql_fetch_object($ergebnis))
        {    
$pos++;
            
$parent=$row->id;
            
get_pos($row->id_parent);
        }
    }

    function 
get_ifparent($who)
    {    global 
$db_kategorien;
        global 
$id;
        global 
$parent;
            
        
$ergebnis mysql_query("SELECT * FROM $db_kategorien WHERE id_parent='$who' AND anzeigen='1'");
        while(
$row mysql_fetch_object($ergebnis))
        {    if(
$id==$row->id$parent=true
            
get_ifparent($row->id);
        }
    }



$farben=array("""#E1E1E1""#f1f1f1""#C6D6E4""#EFF5F9");
    
$tiefenstyles=array("ebene1","ebene2","ebene3");
    
$bildpfad="../bilder/icons/";

    function 
get_tree($who,$ebene)
    {    global 
$db_kategorien;
        global 
$bildpfad;
        global 
$pos;
        global 
$parent;
        global 
$id;
        global 
$farben;
        
        
$ergebnis mysql_query("SELECT * FROM $db_kategorien WHERE id_parent='$who' AND anzeigen='1'");
        while(
$row mysql_fetch_object($ergebnis))
        {    
$pos=0; if($id==$row->id); get_pos($row->id);        
            
            
$parent=false;
            
get_ifparent($row->id);
            
$sub='';
            if(
$id==$row->id$sub=@mysql_num_rows(@mysql_query("SELECT * FROM $db_kategorien WHERE id_parent='$id' AND anzeigen='1'"));

            echo 
'  <tr>';
            echo 
'    <td height="26" colspan="2" bgcolor="'.$farben[$pos].'" onMouseOver="button_over_'.$pos.'(this);" onMouseOut="button_out_'.$pos.'(this);">';
            if(
$parent==true || $id==$row->id)
            {    echo 
$parent==true || $sub '[img]bilder/menu_ac2.gif[/img]' '[img]bilder/menu_ac.gif[/img]';
            
            }
            else
                echo 
'  [img]bilder/menu_normal.gif[/img]';
            echo 
'      [url="index.php?id='.$row->id.'"]'.$row->name.'[/url]</td>';
            echo 
'  </tr>';
            echo 
'<tr><td></td><td height="3"></td></tr>';

            
            if(
$parent==true || $sub)
                
get_tree($row->id,$ebene."");
        }
    } 
mqs ist offline  
Alt 28.02.2006, 14:28  
mqs
Erfahrener Benutzer
 
Registriert seit: 31.08.2007
Beiträge: 179
mqs befindet sich auf einem aufstrebenden Ast
Standard

und hab da ca. 29 kategorien
mqs ist offline  
Alt 28.02.2006, 14:37  
Erfahrener Benutzer
 
Registriert seit: 15.07.2005
Beiträge: 230
zapate
Standard

nehm lieber nested sets, erspart deine etlichen queries

und benutzt den tag [php] anstatt [code]
zapate ist offline  
Alt 28.02.2006, 14:47  
mqs
Erfahrener Benutzer
 
Registriert seit: 31.08.2007
Beiträge: 179
mqs befindet sich auf einem aufstrebenden Ast
Standard

nested sets sind ja n bisschen kompliziert, weil bei wennich kategorien dazwischen anlege muss ich alle zahlen neu vergeben, gleich wie wenn ich eine rauslösche
mqs ist offline  
Alt 28.02.2006, 15:47  
mqs
Erfahrener Benutzer
 
Registriert seit: 31.08.2007
Beiträge: 179
mqs befindet sich auf einem aufstrebenden Ast
Standard

ah seh schon das liegt am server! danke trotzdem
mqs ist offline  
Alt 28.02.2006, 20:49  
Gast
 
Beiträge: n/a
Standard

@zapate: ACHTUNG: Die Klasse befindet sich im ALPHA-Stadium und ist deshalb noch nicht für den produktiven Einsatz zu empfehlen.

@mqs: Wenn die DB-Abfrage auf eine externe DB zugreift entstehen da schomma Laufzeiten. Auch habe ich festgestellt, daß der Indianer von XAMPP 1.5.1 und Firefox 1.5.1 (geiler Zufall) nicht immer gut miteinander können - ok, hab einige Extensions, die das auch verursachen können.

Opera stellt sich da weniger blöd an.
 
 


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:07 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.