kostenloser Webspace werbefrei: lima-city


Script dauert zu lange

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    onlysteul

    onlysteul hat kostenlosen Webspace.

    Wiso dauert dieser Script so lange
    <?
    include(\"mysql.inc.php\");
    $abfrage=\"SELECT * FROM onlysteil\";
    while($row = mysql_fetch_object(mysql_query($abfrage))){
    $passwort = $row->passwort;
    }
    ?>

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m**********r

    Da es höchstwahrscheinlich auf den Datenbankserver vom Lima-City zugreift. Bei schlechten Datenbanken dauert der Zugriff schonmal eine Weile.

    Grüße, Moritz

    P.S.: Satzzeichen gibt es auch...
  4. Autor dieses Themas

    onlysteul

    onlysteul hat kostenlosen Webspace.

    Ich hab bei diesem Script die datenbank von bplaced.net benutzt. Sonst könnte ich eigendlich warten das problem ist nur diese Fehlermeldung
    Fatal error: Maximum execution time of 12 seconds exceeded in /users/automanager1/www/test.php on line 4

  5. Ich hab bei diesem Script die datenbank von bplaced.net benutzt. Sonst könnte ich eigendlich warten das problem ist nur diese Fehlermeldung
    Fatal error: Maximum execution time of 12 seconds exceeded in /users/automanager1/www/test.php on line 4



    Hast du vielleicht versucht von lima aus auf die bplaced-DB zuzugreifen? Das funktioniert nicht.

    Ansonsten waren die bplaced-Datenbankserver halt gerade nicht erreichbar, und nach 12 Sekunden hat PHP den Vorgang dann abgebrochen.
  6. onlysteul schrieb:
    Wiso dauert dieser Script so lange
    <?
    include(\\\'mysql.inc.php\\\');
    $abfrage=\\\'SELECT * FROM onlysteil\\\';
    while($row = mysql_fetch_object(mysql_query($abfrage))){
    $passwort = $row->passwort;
    }
    ?>


    Aua

    Es dauert deshalb so lange, weil dieses Script eine Endlosschleife ist.
    while($row = mysql_fetch_object(mysql_query($abfrage))){

    Diese Zeile bedeutet folgendes:
    Solange(while) du der Variable $row einen vernünftigen Wert zuweisen kannst, wiederhole die Schleife.
    $row ermittelst du in jedem Schleifendurchlauf neu, indem du das MySQL-Query bei jedem Schleifendurchlauf neu ausführst. Das ist natürlich totaler Blödsinn, da man schließlich nur einmal das Query ausführen sollte und dann erst innerhalb einer Schleife die zwischengespeicherten Datensätze einzeln in $row speichert.

    Es ist deshalb eine Endlosschleife, weil das MySQL-Query in jedem Durchlauf neu ausgeführt wird und die Zuweisung $row=mysql_fetch_object(...) immer Erfolgreich ist, da du dir jedes mal den 1. Datensatz aus dem Select rausholst. Beim nächsten Schleifendurchlauf wird das zwischengespeicherte Query-Ergebnis wieder (mit dem selben Ergebnis) überschrieben.

    Also, korrekt müsste es heißen:
    <?
    include(\\\'mysql.inc.php\\\');
    //Die Variable $abfrage ist überflüssig
    $anfrage=mysql_query(\"SELECT * FROM onlysteil\");
    //Das Ergebnis des Queries ist nun zwischengespeichert und kann mit der While-Schleife abgearbeitet werden.
    while($row = mysql_fetch_object($anfrage)){
    $passwort = $row->passwort;
    }
    ?>


    Um vernünftiges PHP und MySQL zu lernen, empfehle ich: http://tut.php-q.net/
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!