Else Meldung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
auszug
bedingung
bestehen
code
dank
datei
geburtsdatum
geburtstag
jugend
karpfen
merken
niemand
schleife
teil
tun
typ
wissen
zeile
zweig
-
Halllo zusammen,
ich habe ein Problem und zwar möchte ich bei Else ausgeben das heute niemand Geburtstag hat.
Wie mache ich das ? Habe leider nicht viel Ahnung von PHP.
<?php $sep = ","; // separator $fn = "Geburtstag.csv"; $txt = explode ("\n", $f = file_get_contents ($fn)); for ($i = 0; $i < count ($txt); $i++) { if ( strlen (trim ($txt[$i])) ) { $txt[$i] = explode ($sep, $txt[$i]); $txt[$i][0] = trim ($txt[$i][0]); // name $txt[$i][1] = trim ($txt[$i][1]); // gebt $txt[$i][2] = ( strstr ($txt[$i][1], $dm = date ("d.m.")) ) ? true: false; // true wenn "dd.mm" stimmt if ( $txt[$i][2] === true ) echo "<h4><center><font face=Palatino color=#FFFF00> Alles gute zum Geburtstag, {$txt[$i][0]} </font></center></h4>"; // diese zeile gibt die namen aus! // was du damint weiter tun willst kann ich nicht wissen, aber all das kannst hier tun!!!!! } else ( $txt[$i][2] === false ) echo "<h4><center><font face=Palatino color=#FFFF00> Heute hat leider niemand der Jugend Geburtstag </font></center></h4>"; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Else wird ausgeführt, wenn die Bedingung bei if nicht zutrifft. Sie braucht also keine explizite Bedingung.
Nimm einfach ( $txt[$i][2] === false ) bei ELSE heraus, dann müsste es funktionieren.
UND Vergleichsoperatoren bestehen aus == und nicht aus ===
<?php $sep = ","; // separator $fn = "Geburtstag.csv"; $txt = explode ("\n", $f = file_get_contents ($fn)); for ($i = 0; $i < count ($txt); $i++) { if ( strlen (trim ($txt[$i])) ) { $txt[$i] = explode ($sep, $txt[$i]); $txt[$i][0] = trim ($txt[$i][0]); // name $txt[$i][1] = trim ($txt[$i][1]); // gebt $txt[$i][2] = ( strstr ($txt[$i][1], $dm = date ("d.m.")) ) ? true: false; // true wenn "dd.mm" stimmt if ( $txt[$i][2] == true ) echo "<h4><center><font face=Palatino color=#FFFF00> Alles gute zum Geburtstag, {$txt[$i][0]} </font></center></h4>"; // diese zeile gibt die namen aus! // was du damint weiter tun willst kann ich nicht wissen, aber all das kannst hier tun!!!!! else echo "<h4><center><font face=Palatino color=#FFFF00> Heute hat leider niemand der Jugend Geburtstag </font></center></h4>"; } } ?>
Beitrag zuletzt geändert: 27.7.2009 15:08:59 von karpfen -
Danke das klappt soweit
jedoch wenn jemand Geburtstag hat erscheinen beide Texte.
Das heißt
erst Alles gute zum Geburtstag, "name"
und dann heute hat leider niemand geburtstag
kann man da was gegen machen ? -
Leider wird jetzt nicht mehr das Alles gute zum Geburtstag angezeigt, obwohl wer Bday hat.
-
Mein Fehler, das Else gehört doch aus der Klammer raus. Es wäre vielleicht hilfreich mal einen Auszug aus der CSV zu sehen.
-
karpfen schrieb:
Hab den Code oben nochmal geändert. Die geschweifte Klammer vor else muss hinter diesen ganzen else-Teil!
Fast gut. ;)
In diesem paßt if-else aber gar nicht:
Liegt der else-Zweig innerhalb der for-Schleife würde er bei jedem, der nicht Geburtstag hat ausgeführt
Liegt er außerhalb, paßt die Verschachtelung nicht.
Hier hilft eine Hilfsvariable
<?php $sep = ","; // separator $fn = "Geburtstag.csv"; $txt = explode ("\n", $f = file_get_contents ($fn)); $irgendwer_hat_purtzeltach = false; // Noch haben wir niemand mit Purtzeltach gefunden. for ($i = 0; $i < count ($txt); $i++) { if ( strlen (trim ($txt[$i])) ) { $txt[$i] = explode ($sep, $txt[$i]); $txt[$i][0] = trim ($txt[$i][0]); // name $txt[$i][1] = trim ($txt[$i][1]); // gebt $txt[$i][2] = ( strstr ($txt[$i][1], $dm = date ("d.m.")) ) ? true: false; // true wenn "dd.mm" stimmt if ( $txt[$i][2] == true ) echo "<h4><center><font face=Palatino color=#FFFF00> Alles gute zum Geburtstag, {$txt[$i][0]} </font></center></h4>"; // diese zeile gibt die namen aus! // was du damint weiter tun willst kann ich nicht wissen, aber all das kannst hier tun!!!!! $irgendwer_hat_purtzeltach = true; // Da ist einer, den merken wir uns } } if ($irgendwer_hat_purtzeltach){ echo "<h4><center><font face=Palatino color=#FFFF00> Heute hat leider niemand der Jugend Geburtstag </font></center></h4>"; } ?>
karpfen schrieb:
UND Vergleichsoperatoren bestehen aus == und nicht aus ===
Es sei denn, Du willst auch den Typ auf Übereinstimmung prüfen. ;)
FF -
Danke fatfreddy :D,
hat geklappt und ich hab mein Geburtstagsscript :D
die CSV Datei ist so nur als kleine nebenbei Info:
Name,"Geburtsdatum"
Heinz,20.10.1934
Peter,18.12.1940
sowas halt -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage