phpbar.de logo

Mailinglisten-Archive

[php] [php/mysql] Optimierte Kalenderabfrage

[php] [php/mysql] Optimierte Kalenderabfrage

Ringo Großer swek at gmx.net
Die Jun 14 20:16:23 CEST 2005


hallo Michael,

Michael Wurz wrote:
> Im Prinzip möchte ich dort nur prüfen, ob der eingeloggte User
> Geburtstage zu einem bestimmten Datum hat, oder nicht. Inzwischen

dann solltest du doch eigentlich nur für diesen nutzer einen geburtstag
darstellen müssen? das wäre eine zusätzliche query oder du legst das
geburtsdatum des user gleich beim einloggen in seiner session ab.

> Kann ich zuerst ne Einmalige SQL Abfrage machen, die ich dann in der
> Schleife auslesen kann? Ich möchte vermeiden, dass bei jedem Aufruf
> des Kalenders erstmal 31 Queries losgeschickt werden müssen, bevor
> ich weiß was los ist. Freue mich auf eure Tipps!

versuch mal eine query über alle tage des aktuellen / darzustellenden
monats. danach baust du aus dem ergebnis ein array auf, dess struktur
jeoch stark davon abhängig ist, was du nun wirklich darstellen möchtest.
aus deiner beschreibung bin ich noch nicht ganz schlau geworden.
vielleicht wäre die folgende struktur sinnvoll

$birthdays = array(

    '2005-06-01' => array(
        'user24',
        'user6'
    ),

    '2005-06-04' => array(
        'user2'
    ),

    '2005-06-05' => array(
        'user1000',
        'user345',
        'user23',
        'user72'
    )

);

dann kannst du während deiner kalendererzeugung jeden tag
gegen dieses array prüfen, ob für den betreffenden tag ein
eintrag existiert mit
if ( $birthdays[$actualDay] ) {
    $users = $birthdays[$actualDay];
}

die variable $users enthält dann wiederum ein array mit allen
usern, die am betreffenden tag geburtstag haben. du könntest
diese dann mit
foreach ( $users as $username ) {
    echo $username;
}
ausgeben bzw verarbeiten.

hth, Ringo


php::bar PHP Wiki   -   Listenarchive