Bazzel
Avatar Bazzel
Themenersteller
Content Meister (251 Beiträge)

PHP Geburtstagsliste (Seite 2)


Bazzel
Avatar Bazzel
Content Meister (251 Beiträge)
am 13.01.2010, 22:25 Uhr schrieb Bazzel

Da hast du mir ja eine Mammut Aufgabe gegeben Habe es aber fast geschafft.

Könntest du nochmal drüber schauen wo es nun hängt. Code im Anhang

Link zum momentanem Stand    http://www.rrc-loerrach.de/test2/

Viele Grüße Joachim


Rock'n'Roll Club Lörrach
Deutsche Meisterschaft 2009 Rock'n'Roll
   

willmann
Avatar willmann
TYPO3-Freelancer.
Guru (246 Beiträge)
am 14.01.2010, 06:52 Uhr schrieb willmann

Bazzel schrieb:

Da hast du mir ja eine Mammut Aufgabe gegeben Habe es aber fast geschafft.



Nur mit seinen Aufgaben kann man wachsen

Den Anhang kann ich leider nicht öffnen; Fehlermeldung: "Anhang existiert nicht".


Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de

Bazzel
Avatar Bazzel
Content Meister (251 Beiträge)
am 14.01.2010, 07:06 Uhr schrieb Bazzel

Guten Morgen Marc,

immer diese Anhänge, die wollen bei mir einfach nicht So hier mal was ich bisher habe.


Geburtstage






<?php
// Geburtstag

$monate = array(1=>"Januar", // Aktuellen Monat einfügen
2=>"Feber",
3=>"März",
4=>"April",
5=>"Mai",
6=>"Juni",
7=>"Juli",
8=>"August",
9=>"September",
10=>"Oktober",
11=>"November",
12=>"Dezember");

$monat1 = $monate[date("n")];

// Initialisierung
$geburtstage = file("geburtstage1.txt");
$ausgabe = "";
$gb_counter = 0;
$jahr = date("Y");

// Textdatei auslesen
foreach ($geburtstage as $geburtstag) {
list($name, $tag, $monat, $jahr_g) = explode("|", $geburtstag);

// farbliche Markierung für runde Geburtstage
if ($monat == date("m")) {
if (date("Y") - $jahr_g % 10 == 0) $isJubilee = true;{
if ($isJubilee) $ausgabe .= \'

\';
$ausgabe .= "" . $name . "
Geburtstag: " . $tag . "." . $monat . "." . $jahr_g . "
\\n" . "Alles Gute!

";
if ($isJubilee) $ausgabe .= \'

\';
$gb_counter++;
}
}

// Ist Monat = aktueller Monat
if ($monat == date("m")) {
$ausgabe .= "" . $name . "
Geburtstag: " . $tag . "." . $monat . "." . $jahr_g . "
\\n" . "Alles Gute!

";
$gb_counter++;
}
}

// Erstellen erster Satz
$satz .= "" . "In " . $monat1 . ((($gb_counter == 1) ? " hat " : " haben ")) . "
" .
$gb_counter . ((($gb_counter == 1) ? " Mitglied" : " Mitglieder")) . " Geburtstag

\\n";
// Farbe für IE einstellen
echo \'<body bgcolor="F4F4F4">\';


// Ausgabe des ersten Satzes als Link zum Reloaden der Seite
echo $satz;
// Ausgabe der Namen und Daten
echo $ausgabe;

?>



if (date("Y") - $jahr_g % 10 == 0) $isJubilee = true;{
Also so wie ich das sehe ist diese Abfrage Falsch da sie immer ja liefert oder?
Er zählt auf 14 also laufen beide (// farbliche Markierung... sowie // Ist Monat = .... ) IF anfragen durch (alle doppelt vorhanden).

Seltsam ist bloß das keine der Ausgaben ROT Formatierter Text ist. Das irritiert mich ein wenig da eine frühere Version die ich Testete 7 x rot und 7 x blau ausspuckte.

Viele Grüße Joachim


Rock'n'Roll Club Lörrach
Deutsche Meisterschaft 2009 Rock'n'Roll
   

willmann
Avatar willmann
TYPO3-Freelancer.
Guru (246 Beiträge)
am 14.01.2010, 07:24 Uhr schrieb willmann

guten Morgen.

Die Klammer hinter

if (date("Y") - $jahr_g % 10 == 0) $isJubilee = true;

ist falsch (oder mindestens unnötig). In der Zeile wird geprüft, ob ( aktuelles_Jahr - Geburtstagsjahr) ohne Rest durch 10 teilbar ist (Modulorechnung). Falls das so ist, wird die Variable $isJubilee auf true gesetzt.

Du könntest auch schreiben:
if (date("Y") - $jahr_g % 10 == 0) {
$isJubilee = true;
}

Danach wird an zwei Stellen geprüft, ob diese Variable wahr ist, um ggf. den DIV-Container für die andere Farbe drumzulegen:

if ($isJubilee) $ausgabe .= \'

\';

oder

if ($isJubilee) {
$ausgabe .= \'

\';
}

bzw.

if ($isJubilee) {
$ausgabe .= \'

\';
}

Wie stehen denn die Geburtstage in Deinem TXT-File drin? mit 4-stelligen Jahreszahlen?

Viele Grüße


Marc

Den zweiten Block brauchst Du dann auch nicht; weil der erste eigentlich schon alle Geburtstage ausspucken sollte.


[...]

// farbliche Markierung für runde Geburtstage
if ($monat == date("m")) {
if (date("Y") - $jahr_g % 10 == 0) $isJubilee = true;{
if ($isJubilee) $ausgabe .= \'

\';
$ausgabe .= "" . $name . "
Geburtstag: " . $tag . "." . $monat . "." . $jahr_g . "
\\n" . "Alles Gute!

";
if ($isJubilee) $ausgabe .= \'

\';
$gb_counter++;
}
}

// Ist Monat = aktueller Monat
if ($monat == date("m")) {
$ausgabe .= "" . $name . "
Geburtstag: " . $tag . "." . $monat . "." . $jahr_g . "
\\n" . "Alles Gute!

";
$gb_counter++;
}
}


if (date("Y") - $jahr_g % 10 == 0) $isJubilee = true;{
Also so wie ich das sehe ist diese Abfrage Falsch da sie immer ja liefert oder?
Er zählt auf 14 also laufen beide (// farbliche Markierung... sowie // Ist Monat = .... ) IF anfragen durch (alle doppelt vorhanden).



Das doppelte kommt von den zwei Blocks, wie oben schon erwähnt. Schmeiß den zweiten raus.

Viele Grüße


Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de

Bazzel
Avatar Bazzel
Content Meister (251 Beiträge)
am 14.01.2010, 10:46 Uhr schrieb Bazzel

Hallo Mark,

das $isJubilee war eine Hilfsvariable jetzt wo du es sagst sehe ich es auch J

Ja die Jahreszahlen sind vierstellig eingetragen.

Beispiel

Joachim Test|9|1|1979|
Sven Test|14|1|1980|
Michael Versuch|15|1|1981|

Die Abfrage ob es ein Runder Geb. ist Funktioniert noch nicht. Vergleich mal die Jahreszahlen in der Liste. Die Eintragung von Sven sollte rot sein. Irgendwo ist da noch ein Problem.

Code im Anhang.

Viele Grüße Joachim


Rock'n'Roll Club Lörrach
Deutsche Meisterschaft 2009 Rock'n'Roll
   

willmann
Avatar willmann
TYPO3-Freelancer.
Guru (246 Beiträge)
am 14.01.2010, 11:01 Uhr schrieb willmann

*argh* Mach mal aus

if (date("Y") - $jahr_g % 10 == 0) $isJubilee = true;
if ((date("Y") - $jahr_g) % 10 == 0) $isJubilee = true;



Du willst ja (2010 - 1980) % 10 rechnen (=0) und nicht (2010 - 1980%10) (=2010)

Marc


Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de

Bazzel
Avatar Bazzel
Content Meister (251 Beiträge)
am 14.01.2010, 11:25 Uhr schrieb Bazzel

So die $isJubilee noch zurücksetzen auf false am ende der Schleife und es läuft.

HERZLICHEN DANK FÃœR DIE HILFE

Viele Grüße Joachim
 


Rock'n'Roll Club Lörrach
Deutsche Meisterschaft 2009 Rock'n'Roll
   

willmann
Avatar willmann
TYPO3-Freelancer.
Guru (246 Beiträge)
am 14.01.2010, 11:29 Uhr schrieb willmann

gerne, gerne. Geld, Gold, Millionen einfach zu meinen Händen schicken

Marc


Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de



« zurück zu: PHP & MySQL

Das Seitenreport Forum hat aktuell 5274 Themen und 36108 Beiträge.
Insgesamt sind 48348 Mitglieder registriert.