[Birthday Mod] nächste Geburtstage auslesen

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
-Andi-
Mitglied
Beiträge: 3
Registriert: 30.04.2006 13:52

[Birthday Mod] nächste Geburtstage auslesen

Beitrag von -Andi- »

Hi,
Mein Name ist Andreas. Ich bin vor einer Woche zufällig auf das PHPbb gestoßen und bin davon richtig begeistert.
Ich habe auch gleich ein paar Mods eingebaut und dabei schon das erste Problem.
Beim Birthday Mod wird ja eine Liste der User angezeigt, die in den nächsten xx Tagen Geburtstag haben.
So etwas möchte ich nun in meine Seite exportieren.
Ich habe die Seite schon ins phpbb Forum eingebunden, auf der ich die kommenden Geburtstage anzeigen möchte, brauche jetzt aber die SQL Syntax dazu.
Das Datum ist ja mit mkrealdate(tag.monat.jahr) in der Datenbank gespeichert.
Normalerweise würde ich nun den Tag des Jahren DAYOFYEAR() verwenden um den nächsten Termin herauszubekommen aber dies ist ja leider wegen der Formatierung nicht möglich.

Weiß jemand wie ich es auslesen könnte?

Mfg. -Andi-
-Andi-
Mitglied
Beiträge: 3
Registriert: 30.04.2006 13:52

Beitrag von -Andi- »

Weiß wirklich niemand wie ich die Leute aus der Datenbank auslese, die in den nächsten 31 Tagen Geburtstag haben?

Mfg. -Andi-
-Andi-
Mitglied
Beiträge: 3
Registriert: 30.04.2006 13:52

Beitrag von -Andi- »

Also ich habs mittlerweile geschafft alles auszulesen und habe den Code erweitert, sodass nur die Geburtstage der Mitglieder einer bestimmten Gruppe angezeigt werden.
Ich poste einfach mal den Code, auf dass jemand, der ein ähnliches Problem hat, hier die Lösung findet.

Mfg. -Andi-

Code: Alles auswählen

function date2timestamp($date) // Format : DD.MM.YYYY
{
  if (preg_match("/^([0-9]{1,2}).([0-9]{1,2}).([0-9]{4})$/i",$date))
  {
    $expDate=explode(".",$date);
    return mktime(0,0,0,$expDate[1],$expDate[0],$expDate[2]);
  }
  else return false;
}


$grab_daten = $db->sql_query("SELECT u.user_id, u.username, u.user_birthday, DAYOFYEAR(NOW()) AS tdj
FROM phpbb_users AS u, phpbb_user_group AS ug, phpbb_groups AS g
WHERE u.user_id = ug.user_id
AND ug.group_id = g.group_id
AND g.group_name = 'TGI'");

  while ($row = $db->sql_fetchrow($grab_daten)) {

	//Geburtsdatum zum Format DD.MM.YYYY
	$auslesen = realdate($lang['DATE_FORMAT'],$row['user_birthday']);

	//Datum in Timestamp
	$datum = date2timestamp($auslesen);

	//Tag des Jahres des Timestamps
	$tagdesjahre = date("z", $datum);

	//Geburtstag-Tag-des-Jahres MINUS HEUTE-Tag-Des-Jahres (Wenn rechnen <= 31, dann liegt der Geburtstag in den nächsten 31 Tagen)
	$rechnen = $tagdesjahre-$row[tdj];


  if($rechnen == 1) {
    echo date("d. M Y", $datum) . " - " . $row[username] . " <em><b>(morgen)</b></em><br>";
    $bla++; }
  elseif($rechnen == 0) {
    echo "<b>" . date("d. M Y", $datum) . " - " . $row[username] . " <em>(heute)</b></em><br>";
    $bla++; }
  elseif($rechnen <= 31) {
    echo date("d. M Y", $datum) . " - " . $row[username] . "<br>";
    $bla++; }
  elseif($bla == "" && $abbruch != "ok") {
    echo "<em>keine</em>";
    $abbruch = "ok"; }


 } //Ende While
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“