Weekend_Warrior Geschrieben 2. August 2004 Teilen Geschrieben 2. August 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
johnhaltonx Geschrieben 2. August 2004 Teilen Geschrieben 2. August 2004 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. August 2004 Teilen Geschrieben 2. August 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Weekend_Warrior Geschrieben 2. August 2004 Autor Teilen Geschrieben 2. August 2004 mySQL DB der Name is Varchar und das Datum Date Hab schon was gefunden: Daten: 2004-12-23 select month(datum) from user -> 12 aber wie bekomme ich den Tag und den Monat? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. August 2004 Teilen Geschrieben 2. August 2004 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'); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Weekend_Warrior Geschrieben 2. August 2004 Autor Teilen Geschrieben 2. August 2004 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!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. August 2004 Teilen Geschrieben 2. August 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.