kostenloser Webspace werbefrei: lima-city


GD-Bibliothek if Anweisungsproblem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    Guten Tag,
    seit 2 Tagen m?chte ich einen Timer erstellen, der mir zeigt wie lange ich schon mit meiner Freundin zusammen bin.:biggrin:
    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.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    OH;)
    ich glaube ich habe das Problem schon gel?st.
    Ich habe ein else if Anweisung benutzt.
    jetzt denke ich, dass es funktioniert.:cool::cool::cool:
  4. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    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.:biggrin:

    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

  5. 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.:biggrin:

    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
  6. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    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.
  7. 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
  8. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    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.
  9. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    Versuchs mal so:
    elseif (($year_time == '') && ($month_time == '') && ($day_time == '2'))
  10. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    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.

  11. 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
  12. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    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.
  13. Autor dieses Themas

    bratany

    bratany hat kostenlosen Webspace.

    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.:biggrin::biggrin::biggrin::biggrin:
  14. 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!