ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / PHP / MySQL Probleme / Geburtstag im aktuellen Monat ?


Seite 1 von 1

PhoenixDH schrieb am 05.01.2005 um 15:26 Uhr

Wie bekomme ich heraus, wer im aktuellen Monat Geburtstag hat ?
Habe es mit

userbday LIKE '%-$currentmonth

versucht, das hat mir aber irgendwie den September ausgegeben !!!

Damit versuche ich das ganze zu lösen:

$r_monat = mysql_query("SELECT * FROM ".$pref."user WHERE userbday LIKE '%-$currentmonth'");
      $monat = mysql_num_rows($r_monat);
      if ($monat == 0)
      {
          $thismonth .= "keine registrierten User" ;
      }
      else
      {

      for ($i=0; $i<$monat; $i++)
      {
        $user2 = mysql_result($r_monat, $i, "username");
        $userid2 = mysql_result($r_monat, $i, "userid");
            
    if ($i != $monat-1)
        {
          // Link bauen und anhängen
          $thismonth .= "<a href=\"v_profile.php?userid=" . $userid2 . "\">" . $user2 . "</a>, ";
        }
        else
        {
          $thismonth .= "<a href=\"v_profile.php?userid=" . $userid2 . "\">" . $user2 . "</a>";
        }
        
      }
      }

PhoenixDH schrieb am 05.01.2005 um 16:39 Uhr

Dieses Problem habe ich gelöst, habe in dem LIKE Teil ein -% am Schluss vergessen !!!

Aber wie sortiere ich das jetzt am besten, wenn ich nach userbday Sortiere sortiert er es nach Alter und nicht nach dem TAG !!!

Wie kann ich die aussschließen die schon geburtstag hatten ???

PhoenixDH schrieb am 07.01.2005 um 23:55 Uhr

Hat kiener ne Idee wie ich die Leute ausschließe die schon hatten ?
Die Abfrage habe ich im Moment:

$r_monat = mysql_query("SELECT * FROM ".$pref."user WHERE userbday LIKE '%-$currentmonth-%'");

Mann musste doch den WHERE Teil um ein AND erweitern, der Inhalt des AND ist mir klar, AND (TAG $userbday > $currentday) *lol* !

Aber wie drücke ich das in sql richtig aus ?

Denn das Geburtsdatum steht so komisch in der Tabelle drin, z.B. 1982-12-17, sprich JAHR-MONAT-TAG !!!

theDon schrieb am 08.01.2005 um 00:37 Uhr

SUBSTR() duerfte das sein, was du suchst.

PhoenixDH schrieb am 08.01.2005 um 03:03 Uhr

Danke !
Hab das jetzt versucht, mit dieser Abfrage, aber jetzt wird gar nichts mehr ausgegeben:

$r_monat = mysql_query("SELECT * FROM ".$pref."user WHERE userbday LIKE '%-$currentmonth-%' AND substr(userbday,8) >= $currentday");

theDon schrieb am 08.01.2005 um 11:28 Uhr

mkay, habs nachgeguck.
a) es ist SUBSTRING(). sry.
b) du wirst 9 als parameter wollen, sonst hast du den `-' mit dabei.

PhoenixDH schrieb am 08.01.2005 um 12:28 Uhr

Wieso 9 ????

1984-12-

12345678


??????

theDon schrieb am 08.01.2005 um 12:44 Uhr

ich habs ausprobiert, glaub mir.

PhoenixDH schrieb am 08.01.2005 um 14:18 Uhr

Hm, bei substr() wäre das 8, aber ich teste es jetzt mal !

---------

Alles klar, jetzt geht es, Danke !

Hät ich ja auch drauf kommen können, hab da viel zu kompliziert gedacht und wollte das irgendwie mit sql Befehlen lösen !

Seite 1 von 1