tamara: timeout

Hallo

Ich habe eine Abfrage erstellt, die Daten aus einer SQl Datenbank holt. Da es relativ viel Daten sind, dauert die Abfrage auch ziemlich lange.

Irgendwo hab ich gelsen, dass man folgendes in die erste Zeile schreiben soll:

set_time_limit(0);

ich habe das in die erste Zeile nach dem ?> geschrieben, aber dann funktioniert dia Abfrage überhaupt nicht mehr. Ich kann dann warten, warten und nochmals warten und es erscheint trotzdem nichts...

Kann mir jemand weiterhelfen?

  1. Hallo Tamara,

    Da es relativ viel Daten sind, dauert die Abfrage auch ziemlich lange.

    Wieviel Daten sind es denn? Trotz der etwas merkwurdigen Topic DHTML schliesse ich mal auf PHP/MySQL. Da muss man schon _sehr_ viele Daten holen, um ein Timeout zu kriegen. Insofern wird auch set_time_limit() wenig bringen, mit einer 0 schon garnicht, siehe PHP-Handbuch. Viel besser waere in der ersten Zeile ein error_reporting(2047);, sodaß mal alle Fehler angezeigt werden. Deine Abfrage sollte zum Debuggen auch die Mysql-Fehlermeldung anzeigen zB. mit mysql_query($query) or die (mysql_error());
    Im Ergebnis haette man dann Fehlermeldungen, mit denen man was anfangen koennte.

    Gruß,

    Dieter

    1. Hallo Dieter

      Ich habe bei der Auswahl des Themagebietes einen Fehler gemacht. Natürlich ist PHP / MYSQL gemeint.

      Ich habe die Abfrage ausgeführt und folgender Fehler ist aufgetreten:

      Fatal error: Maximum execution time of 30 seconds exceeded in /usr/local/httpd/htdocs/proplan/csv/gesamt3.php on line 162

      1. Hallo tamara,

        /usr/local/httpd/htdocs/proplan/csv/gesamt3.php on line 162
        Ist das die Zeile mit der Query?
        Nochmal die Frage, wieviele Datensaetze versuchst Du zu holen (ca.)?
        Hilft es wenn Du unmittelbar vor die Query set_time_limit(200) schreibst?
        200 Sekunden extra sind schon eine Menge, irgendwann wird dein Server von sich aus ein Timeout haben.

        Gruß,

        Dieter

        1. es sind etwa 600 datensätze.

          Genau in der Zeile 162 ist der Query drin.

          Ich versuche nun, nach dem ?> das set time limit zu setzen..

          Mal schauen, was passiert..

          1. Hallo tamara,

            es sind etwa 600 datensätze.

            Geht die Query an der Kommandozeile oder in phpMyAdmin?

            Ich versuche nun, nach dem ?> das set time limit zu setzen..

            Das waere ausserhalb von PHP, das hat keinen Sinn, es muss unmittelbar vor der Query passieren.

            Gruß,

            Dieter