Archiv verlassen und diese Seite im Standarddesign anzeigen : kalender spinnt
hallo,
hab da nen Kalender: www.alternativeplans.de/office/dyn.php
eigentlich funktioniert da alles bis auf die kleinigkeit, dass im August,
unabhängig vom momentanen datum, tag 31 verschluckt wird -.-
also ich bekomme meine anzahl der maximalen tage über:
if(!isset($month))
{
$total_days =date('t');
}
else
{
$total_days =date('t',$mktime);
}
pro kalendertag schleif ich ein $d++ mit, also von 1 bis 30 oder 31
dann kommt jedesmal ein
if(isset($d))
{
if($d<$total_days)
{$d++;}
else
{unset($d);unset($current_day);}
}
und je nach dem wird eben der kalender tag geschrieben oder nich..
ABER: das alles funktionier in jedem monat, außer dem august -.-
irgendwelche ideen :confused: :confused:
ach lol jetz spinnt mein provider... -.-
ich /push dann nacher mal
boing es lag nur an meinem wampp aufm webserver gehts
lololol
hallo
ich hab da so ne funktion, die mir ne tagesübersicht liefert
siehe: http://www.alternativeplans.de/office
wenn ich die funktion in der wochenansicht aufrufe, also mit:
for($i=1;$i<=7;$i++){ showday($i); }
sollten eben 7 solcher ansichten nebeneinander dastehn...
klappt soweit auf meinem wampp super,ABER auf meinem webspace
nicht -.-
da bleibt er nur irgendwie hängen :confused:
da es bei mir aber nich aufm webspace geht, tipp ich mal auf n
performance problem, oder hab ich vielleicht nur doof programmiert? =]
hallo
ich hab da so ne funktion, die mir ne tagesübersicht liefert
siehe: http://www.alternativeplans.de/office
wenn ich die funktion in der wochenansicht aufrufe, also mit:
for($i=1;$i<=7;$i++){ showday($i); }
sollten eben 7 solcher ansichten nebeneinander dastehn...
klappt soweit auf meinem wampp super,ABER auf meinem webspace
nicht -.-
da bleibt er nur irgendwie hängen
da es bei mir aber nich aufm webspace geht, tipp ich mal auf n
performance problem, oder hab ich vielleicht nur doof programmiert? =]
miss doch mal die zeit. wobei ich eher glaube, dass du irgendwo mist programmiert hast.
betreib mal debugging.
meinste auf meinem wampp? mit microtime()?
in erster linie wäre live interessanter. aber beim laden der tagesansicht konnte ich keine großen zeiten feststellen.
also mal debuggen, wo es hängt. vermutlich beim zweiten durchlauf.
setz die schleife mal auf einen durchlauf. klappts?
setzt die schleife mal auf zwei durchläufe, klappt nicht mehr.
jetzt solltest du in der lage sein, deinen fehler zu finden.
gewöhn dir das crossposting bitte gleich wieder ab. :teach:
sry wegen dem xpost, aber ich dachte der thread geht unter ;)
nuja ich hab $i<=1 gestellt, und damit isses ja der gleiche aufruf, wie
der auf der startseite...
und immer noch der gleiche fehler... wampp meckert auch nich...
es is ja keine endlosschleife, aber woran kanns noch liegen, dass er
endlos lädt und dann ma abbricht?
hmm wenn ich die schleife aufs aktuelle datum stell also $i=15 gehts...
mal weiter rummanschen...
Wie siehst denn jetzt aus mit dem Debugging?
Du hast den Code vor deiner Nase. Also arbeite damit. Ich kann nur raten. Und das ist wenig erfolgversprechend.
also sobald ich $i=1 setz, spinnt er... 0 geht auch nur die 1 mag nich
und der einzige codeabschnitt der mit $i zu tun hat ist:
function showday($tag){..}
showday($i)
$sql=mysql_query("SELECT * FROM termine WHERE tag='".$tag."'")
or die(mysql_error());
while($row=mysql_fetch_assoc($sql))
{
$zeit_anfang_raw = explode(":",$row['zeit']);
$i= $zeit_anfang_raw[0]*60+$zeit_anfang_raw[1];
$k= $zeit_anfang_raw[0]*60+$zeit_anfang_raw[1];
$zeit_anfang[$i]=$zeit_anfang_raw[0]*60+$zeit_anfang_raw[1];
$inhalt[$i]['name']=$row['name'];
$inhalt[$i]['zeit']=$row['zeit'];
$inhalt[$i]['zeitende']=$row['zeitende'];
$zeit_ende_raw = explode(":",$row['zeitende']);
$i= $zeit_ende_raw[0]*60;
$zeit_ende[$k][]=$zeit_ende_raw[0]*60+$zeit_ende_raw[1];
}
BugBite
ach lol jetz spinnt mein provider... -.-
...
boing es lag nur an meinem wampp aufm webserver gehts
lololol
LOL
ganz nebenbei: bist du eine zangenbeburt?
1. was ist denn ne zangengeburt?
2. wie wärs mit einer warmen tasse shut the fuck up?
jahlives 16-08-2006, 13:18 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 ?
Gruss
tobi
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
edit3: ich habs grad wieder auf 1 gestellt
kann man sich auf http://alternativeplans.de/office anschaun
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.
Gruß
Uwe
jahlives 16-08-2006, 13:41 ...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 ?
Gruss
tobi
nein =]
das $i kommt aus der for schleife :D
und is in der funktion die nich geht $tag =)
wieso sollte aber n programmierfehler vorliegen wenns auf meinem
wampp geht? versteh ich nich
und es funktioniert nur $i=1 nich 0 und alle anderen werte gehen
edit: oops ja die fkt is showday() nich show_day()
Nur mal so als Tipp:
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.
Gruß
Uwe
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
danke für eure geduld :rolleyes:
Wie lange läuft das Script denn bei dir? Auch über 30 Sekunden? Sind beide Datenbanken mit identisch vielen Datensätzen bestückt?
Gruß
Uwe
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.
Gruß
Uwe
naja hilft das ganze debugging nich wenn man den wald vor lauter doch eigentlich schon. :rolleyes:
|
-
- |