1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Begrüßung nach Datum

Dieses Thema im Forum "PHP" wurde erstellt von Dandin, 15. November 2016.

  1. Dandin

    Dandin Grünschnabel

    Kann mir einer helfen?
    Code (PHP):
    1. <?php
    2. $date = date("d");
    3. $dates = date("m");
    4. if ($date = 24) and ($dates = 12){
    5. $froh = "Frohe Weihnachten!";
    6. }
    7. elseif($date = 27) and ($dates = 11){
    8. $froh = "Erster Advent";
    9. }
    10. elseif($date = 04) and ($dates = 12){
    11. $froh = "Zweiter Advent";
    12. }
    13. elseif($date = 11) and ($dates = 12){
    14. $froh = "Dritter Advent";
    15. }
    16. elseif($date = 18) and ($dates = 12){
    17. $froh = "Vierter Advent";
    18. }
    19. echo $froh;
    20. ?>
     
  2. cwriter

    cwriter Erfahrenes Mitglied

    Hi

    Wobei denn? Was ist das Problem, was geht nicht / was ist die Fehlermeldung?

    In deinem Falle ist das Problem aber einfach:
    Code (PHP):
    1. = //Setzt Werte
    2. == //Liest Werte und vergleicht auf Wert-Gleichheit
    3. === //Liest Werte und vergleicht auf Wert- und Typ-Gleichheit
    Zudem muss in php die Bedingung in Klammern stehen, bei dir tut sie das nicht.
    Eine einfache Lösung ist also:

    Code (PHP):
    1. <?php
    2. $date = date("d");
    3. $dates = date("m");
    4. if (($date == "24") and ($dates == "12")) {
    5. $froh = "Frohe Weihnachten!";
    6. }
    7. elseif(($date == "27") and ($dates == "11")){
    8. $froh = "Erster Advent";
    9. }
    10. elseif(($date == "04") and ($dates == "12")){
    11. $froh = "Zweiter Advent";
    12. }
    13. elseif(($date == "11") and ($dates == "12")){
    14. $froh = "Dritter Advent";
    15. }
    16. elseif(($date == "18") and ($dates == "12")){
    17. $froh = "Vierter Advent";
    18. }
    19. echo $froh;
    20. ?>

    Kleine Erläuterung: In deinem Code ist ja
    Code (PHP):
    1. if ($date = 24) and ($dates = 12) {
    2.     //...
    3. }
    Was eigentlich passiert, ist aber das:
    Code (PHP):
    1. $tmp = $date = 24; //-> $tmp = 24
    2. if($tmp != 0) //true (false ist 0, true ist nicht 0)
    3. {
    4.     //Springe hier rein
    5.     $tmp2 = $dates = 12; //-> $tmp2 = 12
    6.     $tmp 3 = ??? and ($tmp2 != 0) //Fehler: Was soll verundet werden?
    7. }
    8. {
    9.     //Wird immer ausgeführt, aber in einem anderen Scope. Oder "würde", da der Code so nicht laufen sollte.
    10.     //...
    11. }
    Allerdings ist deine Nomenklatur für die Variablen ein bisschen verwirrend. Und warum liest du date nicht direkt als
    Code (PHP):
    1. $datestring = date("dm");
    und überprüfst dann einfach direkt die Strings, z.B.
    Code (PHP):
    1. if ($date === "2412") { //hier ginge auch ($date == "2412")
    2.     //...
    3. } //...
    ?

    Gruss
    cwriter
     
    Zuletzt bearbeitet: 15. November 2016
  3. Dandin

    Dandin Grünschnabel

    Danke schön!
    Mache PHP erst seit Montag:)

    LG
    Dandin
     
  4. cwriter

    cwriter Erfahrenes Mitglied

    Gerngeschehen :)

    Oh, du darfst natürlich Fragen stellen / Fehler machen, das ist kein Problem, dafür sind wir ja da. Ich meinte mit meinem Anfangssatz
    nur, dass
    nicht wirklich aussagekräftig ist. Bei diesem Problem kann man mit ein bisschen Erfahrung recht schnell sehen, was schief läuft, aber sobald es ein bisschen komplexer wird, müssten wir raten. Und daher sind wir immer froh, wenn genauer angegeben wird, was genau das Problem ist, was man eigentlich erreichen will, was momentan erreicht wird (sodass wir schnell sehen, wo der Unterschied ist) und, falls es eine Fehlermeldung gibt, sind wir auch für diese dankbar, denn meist sagt sie viel aus und nimmt einem sehr viele Mühen bei der Fehlersuche und beim Raten ab :)
    Nimm es einfach als Hinweis für zukünftige Fragen und nicht als "Zusammenstauchen" auf, denn so ist es sicher nicht gemeint gewesen :)

    Gruss
    cwriter
     
Die Seite wird geladen...