Geburtstagskalender |
d.b.
Feiertags-Poster Threadstarter
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???
|
 Profil
Editieren
Zitieren
|
d.b.
Feiertags-Poster Threadstarter
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: 345 |
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 Threadstarter
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: 844 |
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 Threadstarter
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.
|
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
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 Threadstarter
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." ";
} |
---
hier gibt es nix zu sehen!
Diese Nachricht wurde geändert von: d.b. |
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
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 Threadstarter
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
|