1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

knifflige MySQL abfrage

Dieses Thema im Forum "PHP & Co." wurde erstellt von velti, 28.11.06.

  1. velti

    velti Jonagold

    Dabei seit:
    27.09.06
    Beiträge:
    22
    mein problem in kurzformat:
    meine seite läuft auf PHP/mysql basis und ich möchte alle benutzer aus der user tabelle ziehen die in den nächsten X tagen geburtstag haben, dazu hab ich bis jetzt folgende abfrage:

    SELECT
    ID,
    nick,
    Geburtstag
    FROM
    users
    WHERE
    CONCAT(
    YEAR(CURDATE()) ,
    DATE_FORMAT( Geburtstag, '-%m-%d' )
    ) BETWEEN
    CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 300 DAY)
    ORDER BY Geburtstag ASC;

    dabei gibt es jedoch das problem, dass nur die benutzer ausgelesen werden die bis zum jahresende geb haben. also über die jahreswende hinweg gehts nicht.

    weiß jemand eine lösung? (ich möchte nicht per for schleife X mysql abfragen starten, das wär ganz schön serverlastig.)
     
  2. b0rsten

    b0rsten Gast

    wie sieht dein feld Geburtstag aus? is das ein unix_timestamp? wenn ja...
    Code:
    <?php
    $x = 3; # innerhalb der nächsten drei tage
    $y = 5; # anzahl der user
    $time = time() + ($x * (60*60*24));
    $sql = mysql_query("SELECT * FROM users WHERE Geburtstag < '" . $time . "' ORDER BY Geburtstag DESC LIMIT " . $y);
    ?>
    
    ungetestet ^
     
  3. csharp

    csharp Gast

    SELECT id, nick, Geburtstag
    FROM users
    WHERE Geburtstag
    BETWEEN CURDATE( )
    AND DATE_ADD( CURDATE( ) , INTERVAL 300
    DAY )
    ORDER BY geburtstag ASC

    Dein Concat war erstens falsch und zweitens unnötig ;)
     
  4. velti

    velti Jonagold

    Dabei seit:
    27.09.06
    Beiträge:
    22
    das feld ist im date format...

    danke csharp, ich teste es mal :)

    hmm, ich seh grad das kann nich klappen: mit der abfrage sucht der nach geburtsdaten in den nächsten X tagen. hab aber leider keine benutzer die noch nicht geboren sind ;)
     
  5. csharp

    csharp Gast

    Haha habs natürlich getestet jedoch alle Geburtsdaten in die Zukunft gesetzt, zu geil ;-=)
     

Diese Seite empfehlen