kostenloser Webspace werbefrei: lima-city


Else Meldung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kevinweiler

    Kostenloser Webspace von kevinweiler

    kevinweiler hat kostenlosen Webspace.

    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>";
    		
    }
    
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

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

    kevinweiler

    Kostenloser Webspace von kevinweiler

    kevinweiler hat kostenlosen Webspace.

    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 ?
  5. Hab den Code oben nochmal geändert. Die geschweifte Klammer vor else muss hinter diesen ganzen else-Teil!
  6. Autor dieses Themas

    kevinweiler

    Kostenloser Webspace von kevinweiler

    kevinweiler hat kostenlosen Webspace.

    Leider wird jetzt nicht mehr das Alles gute zum Geburtstag angezeigt, obwohl wer Bday hat.
  7. Mein Fehler, das Else gehört doch aus der Klammer raus. Es wäre vielleicht hilfreich mal einen Auszug aus der CSV zu sehen.
  8. 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
  9. Autor dieses Themas

    kevinweiler

    Kostenloser Webspace von kevinweiler

    kevinweiler hat kostenlosen Webspace.

    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
  10. 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!