Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi, ich bin dabei eine Gebutrstgsliste zu erstellen.

In der DB ist der Name und das GebDatum im Format JJJJ-MM-TT gespeichert.

Nun soll wird mit PHP ein Kalender erzeugt und die Tage, an denen ein User Geburtstag hat sollen rot werden.

Jetzt stehe ich vor dem Problem wie ich am besten überprüfen kann, wer an dem Tag Geburtstag hat. Ich könnte natürlich bei jeden Tag ne Abfrag machen. Das hat den Nachteil, dass ein riesen Trafic auf der DB entsteht und ich muss irgendwie das Jahr ignorieren (keine Ahung wie ich das einschränke WHERE geb= XXXX-12-15 z.B.).

Hab auch überlegt das Abfrageergebnis in nen Array zu schreiben und den zu überprüfen, is halt nur dumm dass ich dann 365(Tage)x150(user) Prüfungen hab. Dann wird die Seite ja nie aufgebaut

Oder hat jemand ne besser Idee?

Geschrieben

Welche Datenbank ?

In Oracle:

select vname, nname from mitarbeiter

where trunc(sysdate)=trunc(gebdat);

davon ausgehen das das Geburtsdatum als DATE gespeichert ist.

Dann muß er aber immer noch für jeden Tag die Abfrage machen...

das Jahr ausblenden kann man mit: to_char(sysdate ,'MM-DD') gibt nur Monat und Tag aus.

TO_CH

-----

08-02

Um die Last zu veringern kann man das Ergebnis auch Regelmäßig aktualisieren lassen. Also per job alle x Stunden die Geburtstage fest in eine extra Tabelle selektieren und für die alenderanzeige diese Tabelle abfragen.

Geschrieben
Hi, ich bin dabei eine Gebutrstgsliste zu erstellen.

In der DB ist der Name und das GebDatum im Format JJJJ-MM-TT gespeichert.

Welchen Datentyp hat dein Feld?

Varchar?

Char?

Date?

Geschrieben

ich nehm ma an mit PHP oder?


$monat = date( 'm');
$tag = date( 'd');
$SQL = 'select * from user where month(datum) = '. $monat .' and day(datum) = '. $tag';
[/PHP]

oder:

[PHP]
$SQL = "select * from user where DATE_FORMAT(datum,'%Y-%m') = ". date( 'Y-m');

Geschrieben

Besten Dank,

ich mach es jetzt so:

sql("SELECT a.U_Nick, DATE_FORMAT(`b.P_Geb`, '%d.%m') as datum
FROM user a, profil b
WHERE a.U_ID= b.P_ID
ORDER BY b.P_Geb asc;"); [/PHP]

Das kommt in nen Array und der wird dann überprüft, so hab ich weniger Traffic auf der DB.

Mal sehen wies am Ende aussieht!!

Geschrieben
Besten Dank,

ich mach es jetzt so:

sql("SELECT a.U_Nick, DATE_FORMAT(`b.P_Geb`, '%d.%m') as datum
FROM user a, profil b
WHERE a.U_ID= b.P_ID
ORDER BY b.P_Geb asc;"); [/PHP]

Das kommt in nen Array und der wird dann überprüft, so hab ich weniger Traffic auf der DB.

Mal sehen wies am Ende aussieht!!

das du so wenig traffix auf der DB hast bezweifle ich.

Du Lässt dir alle User von der DB im Dataset ausgeben, aber wenn du sie wie ich oben beschrieben habe mit dem "where" filters, ist das dataset doch viel geringer

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...