Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Geburtstagskalender Antworten
Geburtstagskalender

d.b.
Feiertags-Poster


Beiträge: 30


Hallo!
Ich habe in meiner Datenbank die Geburtstage von einigen Leuten in Form eines Unix-Timestapms abgelegt.
Jetzt möchte ich einen Geburtstagskalender erstellen, wo die Geburtstage nach Tag und Monat geordnet werden, also das Jahr außen vor gelassen werden soll.

Meine Frage: Wie stelle ich das an?


---
hier gibt es nix zu sehen!

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Ähhhh, einfach für jeden Tag checken, ob da nen Geburtstag ist, oder nicht... Oder wo hakts jetzt???

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

d.b.
Feiertags-Poster


Beiträge: 30


Ich will für den aktuellen Monat ne Anzeige machen, wer Geburtstag hat. Diese sollen dann nach dem Tag geordnet sein.

Wenn ich jetzt "ORDER BY geburtstag" benutze, wird ja z.b. der 12.04. (1984) vorm 06.04. (1983) angezeigt. Aber wie ich oben gesagt habe, hätte ich gerne die Daten nach Tagen geordnet.

---
hier gibt es nix zu sehen!

  Profil   Editieren   Zitieren

ATooM
Quasselstrippe


Beiträge: 346


Order by geburtstag DESC

Dann wirds umgekehrt ausgelesen.

zur Monatsüberprüfung.
1: 
2: 
3: 
4: 
5: 
6: 
7:
$x = 1;

if(date("m") == date("m",ausgelesen[geburtstag])){
print "$ausgelesen[name] hat diesen Monat als $x Geburtstag";
$x++;
}


---
Just Peace!

  Profil   E-Mail   Website   Editieren   Zitieren

d.b.
Feiertags-Poster


Beiträge: 30


angenommen ich habe folgende geburtsdaten:
12.10.1983, 07.10.1977 und 02.10.1982

order by geburtstag bringt mir:
07.10.1977 - 02.10.1982 - 12.10.1983

order by geburtstag desc bringt mir:
12.10.1983 - 02.10.1982 - 07.10.1977

ich hätte es jedoch gerne folgendermaßen geordnet:
02.10.1982 - 07.10.1977 - 12.10.1983 (also ohne jahreszahl, aber die wegzulassen is ja net das problem)



---
hier gibt es nix zu sehen!

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Du hast es etwas ungünstig gespeichert, bei Geburtstagen ist es sinnvoller Tage, Monate und Jahre seperat zu speichern. Eventuell kannst du die Struktur ja noch umstellen?

Dann könntest du sehr einfach alle Geburtstage eines Monats herrausholen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

d.b.
Feiertags-Poster


Beiträge: 30


das hab ich mittlerweile auch gemerkt ;)

also doch alles in sql-timestamp umwandeln. hab gehofft, dass ich mir das ersparen kann. aber gut, bleibt mir wohl nix anderes übrig. :(


---
hier gibt es nix zu sehen!

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


öööh, wieso SQL-Timestamp?
Du kannst dich einfach noch drei Spalten mit Tag, Monat und Jahr anfügen lassen und gerade mit einem PHP-Script die Spalten aus der Timestamp füllen lassen.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Ein MySQL-Timestamp hätte das gleiche Problem wie jetzt. (Da man jederzeit einen Unix-Timestamp in einen MySQL-Timestamp umwandeln kann.)

Du könntest zwar über Datumfunktionen den Monat herausfiltern und diesen im WHERE und im ORDER BY nutzen, jedoch sind diese Aufrufe dann immer für jeden Datensatz notwendig. Dies ist nicht unbedingt performant.

Deshalb ist die seperate Speicherung hier sinnvoller.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

d.b.
Feiertags-Poster


Beiträge: 30


ich hab's. so funktioniert es auch mit SQL-Timestamp:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:
$monat = date("m", mktime());

$query = "SELECT *, DATE_FORMAT(geb, UNIX_TIMESTAMP(geb)) AS tstamp FROM tabelle WHERE DATE_FORMAT(geb, '%m.') = $monat ORDER BY DATE_FORMAT(geb, '%d.%m.')";
$result = mysql_query($query, $db_connection) or die(mysql_error());

while ($row = mysql_fetch_array($result))
	{
	$geb = date("d.m.Y",$row["tstamp"]);
	echo $row["name"]." - ".$geb."<br>";
	}


---
hier gibt es nix zu sehen!

Diese Nachricht wurde geändert von: d.b.
  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Hast du überhaupt gelesen was ich geschrieben hatte? Ich sagte bereits - man will im WHERE keine Datumsfunktionen haben.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

d.b.
Feiertags-Poster


Beiträge: 30


ja, hab ich gelesen, aber wohl net wirklich mit verstand. :-/
für's erste reicht's mir auch so, aber wenn ich mal wieder lust und zeit dafür hab, mach ich's halt doch seperat.

aber danke für eure hilfe!

---
hier gibt es nix zu sehen!

  Profil   Editieren   Zitieren
 

Antworten
Nach oben