hmm wenn ich die schleife aufs aktuelle datum stell also $i=15 gehts...
mal weiter rummanschen...
Was ist denn der Wertebereich den $i= $zeit_ende_raw[0]*60; im Maximum ergibt ? Nicht zufällig grösser 7 und damit ein Grund die Schleife abzubrechen ? error_reporting(E_ALL); am Anfang deines Scripts gesetzt ?
[color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color] Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
sry dass ich die variablen so blöd gesetzt hab =)
also
aufruf mit: showday($i) für function showday ($tag){..}
$i ist ja dann in der funktion $tag oder?
naja E_ALL schön und gut aber mein problem is, dass das script
einfach im ladezustandhängen bleibt und dann irgendwann den fehler
"...exceeded 30 seconds..." an einer beliebigen stelle im script ausspuckt UND das nur aufm webserver
Original geschrieben von BugBite
aufruf mit: show_day($i) für function showday ($tag){..}
$i ist ja dann in der funktion $tag oder?
Ähm, mit einem simplen echo in der Funktion könntest du das selber herausfinden. Das sind Grundlagen, die man sich auch gerne mal alleine erabeiten darf.
Original geschrieben von BugBite
naja E_ALL schön und gut aber mein problem is, dass das script
einfach im ladezustandhängen bleibt und dann irgendwann den fehler
"...exceeded 30 seconds..." an einer beliebigen stelle im script ausspuckt
Dann läuft das Script einfach zu lange. Warum das so ist, keine Ahnung, da man das komplette Script nicht kennt. Eine optimierung wäre wohl angebracht.
...einfach im ladezustandhängen bleibt und dann irgendwann den fehler
"...exceeded 30 seconds..." an einer beliebigen stelle im script ausspuckt
Du weisst aber schon, dass das PHP nicht zum Spass macht. In 99,99999% der Fälle liegt ein Programmierfehler vor
Du übergibst also das $i, welches aus der Fkt showday() kommt an show_day() ?
Hat das $i denn immer die erwarteten Werte ? Ggf direkt nach der Fkt Definition von show_day() einen var_dump($i) machen. Sind es immer die von Dir erwarteten Werte ?
[color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color] Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.
schonmal danke für die tipps uwe, aber sei dir sicher das ich jegliche
debug möglichkeiten ausgeschöpft hätte...
1. die übergebene variable aus der for schleife, also $tag,
wird nur ein einziges mal verwendet nämlich in dem, in der fkt liegenden query. die variable stimmt auch...
2. mit jedem wert außer 1 funktioniert das script und baut mir die tabelle, deren aufbau durch eine statische for schleife geschieht, in millisekunden auf
3. das skript funktioniert auf meinem server bestens
könnte es also sein das der webserver schuld is ? o.O
also bei mir daheim wird das script in 0.x sekunden aufgebaut
aufm webserver läufts ewig, hab nur mal auf nem screenshot
von nem freund diese 30 seconds fehlermeldung gelesen...
auf beiden datenbanken sind nich mehr als 20 termine gespeichert
aaah danke uwe x)
in der db war ein fehlerhafter eintrag, eben genau am ersten
und zwar weil der eintrag von einer frühreren version geschrieben wurde...
naja hilft das ganze debugging nich wenn man den wald vor lauter
bäumen nich sieht ;]
und auch danke an die leute die sich mit newbie fragen abgeben!
Da wird dir nichts anderes übrig bleiben, als massenhaft echo's einzubauen und anhand der Ausgabe zu versuchen, das Problem einzukreisen. Beachte, dass du flush einbauen musst, um tatsächlich eine Ausgabe in diesem Fall zu bekommen. Da flush aber manchmal Probleme macht, solltest du im Falle eines Falles die zahlreichen Beispiele in der Doku beachten.
Kommentar