GD-Bibliothek if Anweisungsproblem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anweisung
anzeigen
bild
counter
date
deswegen
este
fehler
fragen
freundin
gel
image
jahr
laut
minute
monat
result
stattdessen
variable
zusammen
-
Guten Tag,
seit 2 Tagen m?chte ich einen Timer erstellen, der mir zeigt wie lange ich schon mit meiner Freundin zusammen bin.
Ich habs auch einigerma?en geschaft aber es gibt ein Problem bei der if Anweisung.
Also ich stell erstmal den Code rein.
<?php error_reporting(E_ALL); function output($date,$what,$ex,$comma) { if($date == 1) $result = "1 $what"; elseif($date <= 0) $result = ""; else $result = "$date $what$ex"; if(!empty($result)) { if($comma) $result.=' '; else $result.=' '; } return $result; } //hier kommt eigentlich noch eine Seite zum Eingeben hin, darum ist es so verschoben^^ $year=2006; $month=8; $day=24; $hour=22; $minute=00; $year_time = output($year-date("Y"),'','',0); if($month-date("m") < 0) $month_time = output(date("m")-$month,'','',1); else $month_time = output($month-date("m"),'','',1); if($month_time != "" AND $day-date("d") > 0) { $m31=array(1,3,5,7,8,10,12); if(array_search(date("m"),$m31)) $timer_d = 31; elseif(date("d") == 2) { if(date("L")) $timer_d = 29; else $timer_d = 28; } else $timer_d = 30; $day_time = output($day+($timer_d-date("d")),'','',1); if($day_time > $timer_d) { $day_time = output($day_time-$timer_d,'','',1); if($month_time != 0) $month_time--; } } else $day_time = output(date("d")-$day,'','',1); if(date("G") < $hour) $hour_time = output($hour-date("G"),'','',1); else { $hour_time = output($hour+(24-date("G")),'','',1); if($day_time != 0) $day_time--; } while($hour_time > 24) $hour = $hour_time - 24; if(date("i") < $minute) $minute_time = output($minute-date("i"),'','',1); else { $minute_time = output($minute+(60-date("G")),'','',1); if($hour_time != 0) $hour_time--; } if($year_time==""AND$month_time==""AND$day_time=="1"); { $bild = Imagecreatefromjpeg('tag.jpg'); header("Content-type: image/jpeg"); $farbeSchwarz = imagecolorallocate($bild, 0, 0, 0); ImageString($bild, 5, 378, 538, "$day_time", $farbeSchwarz); imagepng($bild); } if($year_time==""AND$month_time==""AND$day_time=="2"); { $bild = Imagecreatefromjpeg('tage.jpg'); header("Content-type: image/jpeg"); $farbeSchwarz = imagecolorallocate($bild, 0, 0, 0); ImageString($bild, 5, 378, 538, "$day_time", $farbeSchwarz); imagepng($bild); } ?>
Also oben ist der Counter der abz?hlt wie viele Tage das sind.
Unten ist die If anweisung.
Da sind jetzt 2 st?ck.
Das este muss mir anzeigen wenn ich 1 Tag mit der zusammen bin das bild tag.jpg.
Die zweite muss mir wenn ich 2 Tage mit der zusammen bin das bild tage.jpg anzeigen.
Tut es aber nicht.
Er zeigt das erste bild an und schreib dort 2 Tage hin.
Ich glaube das Problem liegt in der if Anweisung.
Danke im vorraus. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
OH;)
ich glaube ich habe das Problem schon gel?st.
Ich habe ein else if Anweisung benutzt.
jetzt denke ich, dass es funktioniert. -
Ich hab aber noch eine Frage.
else if($year_time=="" AND $month_time=="" AND $day_time==2) { $bild = Imagecreatefromjpeg('tage.jpg'); }
Diese else if Anweisung wird erst angezeigt wenn die Variable $day_time gleich 2 ist.
Jetzt kommt meine Frage.
Wie mach ich denn, dass wenn dort aber 2 oder h?her steht trotzdem diese else if Anweisung genommen wird???
Also z.b. wenn dort 3 oder 4 stehen w?rde trotzdem diese Anweisung genommen wird.
Danke im vorraus.
OH MAN !!
ICH BIN DUMM!!
Voll einfach:D
ich musste nur statt == << machen:D
LOL
Beitrag ge?ndert am 26.08.2006 13:38 von bratany -
Ich hab aber noch eine Frage.
else if($year_time=="" AND $month_time=="" AND $day_time==2) { $bild = Imagecreatefromjpeg('tage.jpg'); }
Diese else if Anweisung wird erst angezeigt wenn die Variable $day_time gleich 2 ist.
Jetzt kommt meine Frage.
Wie mach ich denn, dass wenn dort aber 2 oder h?her steht trotzdem diese else if Anweisung genommen wird???
Also z.b. wenn dort 3 oder 4 stehen w?rde trotzdem diese Anweisung genommen wird.
Danke im vorraus.
OH MAN !!
ICH BIN DUMM!!
Voll einfach:D
ich musste nur statt == << machen:D
LOL
Beitrag ge?ndert am 26.08.2006 13:38 von bratany
wohl eher:
" $day_time >= 2 "
oder?
MfG
.i -
bei mir hat << gefunzt;)
aber es gibt da noch ein problem:D:D:D
LOL
und zwar:
else if($year_time=="" AND $month_time=="" AND $day_time==2)
in den klammer hab ich rausgefunden, dass man 2 Variablen nur mit AND eintragen kann.
also in dem Fall die beiden letzten also $month_time und $day_time aber $year_time wird garnicht ?berpr?ft.
Wie kann man denn aber 3 anweisungen ?berpr?fen so dass alle 3 stimmen m?ssen also wie mit AND.
Danke im Vorraus. -
Sollte so funktionieren wie du es gemacht hast ^^
evt die einzelnen Bedingungen nochmal in Klammer setzen:
else if( ($year_time == '') AND ($month_time == '') AND ($day_time == '2') )
w?sste nicht warums nicht gehen sollte ^^
MfG
.i
-
hmmm
funktioniert leider auch nicht.:(:(:(:(
der zeigt mir eine andere if anweisung an. die nur mit $month_time und $day_time
der muss mir aber die beiden und noch dazu $year_time anzeigen. -
Versuchs mal so:
elseif (($year_time == '') && ($month_time == '') && ($day_time == '2'))
-
hhhmmm.
Leider funktioniert das auch urgendwie nicht.
Ich wei? selber nicht was los ist.
Bei meinem PHP Designer auf dem PC klappt ein bisschen einfacherer script aber mit der gleichen funktion und im Internet dann nicht mehr.
HMMM.
-
hhhmmm.
Leider funktioniert das auch urgendwie nicht.
Ich wei? selber nicht was los ist.
Bei meinem PHP Designer auf dem PC klappt ein bisschen einfacherer script aber mit der gleichen funktion und im Internet dann nicht mehr.
HMMM.
wo im internet?
Auf den Safe-Mode aufpassen!!!!
edit
hmmm seh grad dass das bei dir wahrscheinlich eh nicht relevant ist ....
Beitrag ge?ndert am 26.08.2006 17:52 von pointi -
Es ist auf meinem Webspace in Lima City.
Ich hab grade ein versuch gemacht und den Quellcode in mein PHP Designer kopiert.
Habe anstatt wo ich bilder aufrufe nur einfache echo funktionen eingef?gt und es hat auf dem PC auch nicht funktioniert.
Ich glaube es ist urgendwo in dem Cuellqode ein Fehler drin.
Ich stell mal diesen mit der einfachen Version rein.
<?php error_reporting(E_ALL); function output($date,$what,$ex,$comma) { if($date == 1) $result = "1 $what"; elseif($date <= 0) $result = ""; else $result = "$date $what$ex"; if(!empty($result)) { if($comma) $result.=' '; else $result.=' '; } return $result; } //hier kommt eigentlich noch eine Seite zum Eingeben hin, darum ist es so verschoben^^ $year=2005; $month=7; $day=25; $hour=22; $minute=00; $year_time = output($year-date("Y"),'','',0); if($month-date("m") < 0) $month_time = output(date("m")-$month,'','',1); else $month_time = output($month-date("m"),'','',1); if($month_time != "" AND $day-date("d") > 0) { $m31=array(1,3,5,7,8,10,12); if(array_search(date("m"),$m31)) $timer_d = 31; elseif(date("d") == 2) { if(date("L")) $timer_d = 29; else $timer_d = 28; } else $timer_d = 30; $day_time = output($day+($timer_d-date("d")),'','',1); if($day_time > $timer_d) { $day_time = output($day_time-$timer_d,'','',1); if($month_time != 0) $month_time--; } } else $day_time = output(date("d")-$day,'','',1); if(date("G") < $hour) $hour_time = output($hour-date("G"),'','',1); else { $hour_time = output($hour+(24-date("G")),'','',1); if($day_time != 0) $day_time--; } while($hour_time > 24) $hour = $hour_time - 24; if(date("i") < $minute) $minute_time = output($minute-date("i"),'','',1); else { $minute_time = output($minute+(60-date("G")),'','',1); if($hour_time != 0) $hour_time--; } if($year_time=="" && $month_time=="" && $day_time==1)//tag { echo "7"; } else if($year_time=="" && $month_time=="" && $day_time<<2)//tage { echo "5"; } else if($year_time=="" && $month_time==1 && $day_time==1)//monat.tag { echo "4"; } else if($year_time=="" && $month_time==1 && $day_time<<2)//monat.tage { echo "3"; } else if($year_time=="" && $month_time<<2 && $day_time==1)//monate.tag { echo "2"; } else if($year_time=="" && $month_time<<2 && $day_time<<2)//monate.tage { echo "1"; } else if($year_time==1 && $month_time==1 && $day_time==1)//jahr.monat.tag { echo "6"; } else { echo "WARNUNG: Es ist ein Fehler aufgetretten!!!!"; } ?>
wenn man hinschaut steht h?her das datum als 25.07.2005
es bedeutet, dass drei Zahlen angegeben werden also drei mal 1.
1 jahr 1 monat und 1 tag her.
also laut der if anweisung muss er die zahl 6 ausgeben.
Tut er aber nicht.
Stattdessen gibt er mir die zahl 4 aus. -
Ich habe den Fehler entdeckt!!!
Es steht ja 2005 da deswegen kann der nicht die Zeit r?ckwerz ausrechnen.
also alles was unter 2006 steht kommt ohne zahl raus.
Wenn ich aber 2007 eingebe, dann kommt eine 1 f?r 1 Jahr raus. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage