Suche: Geburtstagsanzeige |
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.442
Herkunft: NRW
Postid: 7666
|
|
hab ich schon gemacht.
Nur wird das Datum aber nach der Jahreszahl und nicht nach Monat und Tag sortiert.
Da muss ich noch einiges umformen-
Ich muss aber jetzt erst mal weg, schau aber ob ich das gleich noch hin bekomme.
So fädisch.
Ist zwar sehr spartanisch aber es funktioniert. siehe hier! Klick mich!
Erstelle eine Datei z. B. geburtstag.php mit folgendem Inhalt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
|
<?php
require("./global.php");
$geb = "SELECT username, birthday from bb1_users where birthday != '0000-00-00' ORDER BY birthday";
$tab = mysql_query($geb);
while($ds = mysql_fetch_object($tab)) {
$birthday = $ds->birthday;
$user = $ds->username;
$tag = substr($birthday,8,2);
$monat = substr($birthday,5,2);
$jahr = substr($birthday,0,4);
$array[] = $monat.". ".$tag.". ".$jahr." -- ".$user;
}
sort($array);
foreach ($array as $Element) {
$mon = substr($Element,0,2);
$tag = substr($Element,4,2);
$rest =substr($Element,7);
$element= $tag.". ".$mon.". ".$rest;
echo $element ."<br>";
}
?> |
|
Lege sie ins root-Verzeichnis (meist wbb2) und rufe sie im Browser auf.
deine Domain/wbb2/geburtstag.php
Es werden noch alle Geburtstage angezeigt.
Was wird gemacht?
Zuerst lese ich alle Mitglieder aus, die einen Geburtstag eingetragen haben.
Das Format des Geburtstages in mysql ist jjjj-mm-tt.
(Das " ORDER BY birthday" kann wegfallen aber es stand nun schon mal da.)
code: |
1:
2:
|
$geb = "SELECT username, birthday from bb1_users where birthday != '0000-00-00' ORDER BY birthday";
$tab = mysql_query($geb); |
|
Die Datensätze zerpflücke ich in tag, monat und jahr und schreibe sie in der Reihenfolge monat, tag,jahr,username in ein array, welches ich im nächsten Schritt sortiere.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
while($ds = mysql_fetch_object($tab)) {
$birthday = $ds->birthday;
$user = $ds->username;
$tag = substr($birthday,8,2);
$monat = substr($birthday,5,2);
$jahr = substr($birthday,0,4);
$array[] = $monat.". ".$tag.". ".$jahr." -- ".$user;
}
sort($array);
|
|
Dann zerpflücke ich die Datensätze wieder in tag, monat und rest und schreibe sie in eine Variable $element in Form von tag. monat. rest ein, wobei Rest gleich das Jahr und den Namen enthält.
code: |
1:
2:
3:
4:
5:
6:
7:
|
foreach ($array as $Element) {
$mon = substr($Element,0,2);
$tag = substr($Element,4,2);
$rest =substr($Element,7);
$element= $tag.". ".$mon.". ".$rest;
|
|
Mit echo gebe ich diese Datensätze der Reihe nach aus.
LG
haumi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
03.03.2011 17:57 |
|
|
|
auch ein bischen getüftelt.
Wer den Hintergrund in den jeweilgen Style(s) haben will
mit einer Überschrift und einer Trennlinie am Anfang und Ende
sucht
require("./global.php");
füge darunter ein:
code: |
1:
2:
3:
4:
|
echo "$css";
echo '<font size="5"><hr>';
echo "Geburtstage der Mitglieder<hr>";
echo '</font>'; |
|
suche weiter
?>
füge darüber ein:
code: |
1:
2:
3:
4:
|
echo "$css";
echo '<font size="5"><hr>';
echo "Geburtstage der Mitglieder<hr>";
echo '</font>'; |
|
Im Designepack unter Hintergrund
kann man die Schriftfarbe anpassen.
Unter <font size="5"> 5 ist die Schriftgrösse der Überschrift.
Gruß katze2ooo
__________________
|
|
04.03.2011 11:34 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.442
Herkunft: NRW
Postid: 7706
|
|
Hi Katze,
die echo-Befehle sollte man aus der php - Datei in ein Template auslagern.
Wer mal Testen möchte kann sich mal den Code in sein Board einbauen.
Angezeigt werden im Moment die Geburtstage des laufenden Monats. Klick hier
die Restmonate folgen karnevalsbedingt etwas später.
Hier die beiden Templates und die phpdatei_
Template geburtstag:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
|
<?xml version="1.0" encoding="{$lang->items['LANG_GLOBAL_ENCODING']}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{$lang->items['LANG_GLOBAL_DIRECTION']}" lang="{$lang->items['LANG_GLOBAL_LANGCODE']}" xml:lang="{$lang->items['LANG_GLOBAL_LANGCODE']}">
<head>
<title>$master_board_name | {$lang->items['LANG_GLOBAL_MEMBERSLIST']}</title>
$headinclude
</head>
<body>
$header
<table cellpadding="{$style['tableincellpadding']}" cellspacing="{$style['tableincellspacing']}" border="{$style['tableinborder']}" style="width:{$style['tableinwidth']}" class="tableinborder">
<tr>
<td class="tablea"><table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr class="tablea_fc">
<td align="left"><span class="smallfont"><b><a href="index.php{$SID_ARG_1ST}">$master_board_name</a> » Geburtstagsliste</b></span></td>
<td align="right"><span class="smallfont"><b>$usercbar</b></span></td>
</tr>
</table></td>
</tr>
</table><br />
$gebbit
$footer
</body>
</html> |
|
Template geb_bit:
code: |
1:
2:
3:
|
<ul>
$ausgabe
</ul> |
|
die Datel: geburtstag.php
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
|
<?php
require("./global.php");
$aktuell = date("-m-");
echo $aktuell;
$geb = "SELECT username, birthday from bb1_users where birthday != '0000-00-00' AND birthday LIKE '%$aktuell%' ORDER BY birthday";
$tab = mysql_query($geb);
while($ds = mysql_fetch_object($tab)) {
$birthday = $ds->birthday;
$user = $ds->username;
$tag = substr($birthday,8,2);
$monat = substr($birthday,5,2);
$jahr = substr($birthday,0,4);
$array[] = $monat.". ".$tag.". ".$jahr." -- ".$user;
}
sort($array);
foreach ($array as $Element) {
$mon = substr($Element,0,2);
$tag = substr($Element,4,2);
$rest =substr($Element,7);
$element = $tag.". ".$mon.". ".$rest;
$ausgabe .= "<li>".$element."</li>";
eval("\$gebbit = "".$tpl->get("geb_bit")."";");
}
eval("\$gebbit = "".$tpl->get("geb_bit")."";");
eval("\$tpl->output("".$tpl->get("geburtstag")."");");
?>
|
|
Es kann gerne weiter entwickelt werden.
LG
haumi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
07.03.2011 18:37 |
|
|
haumi
Boardbetreiber
[meine Galerie]
Dabei seit: 06.06.2009
Beiträge: 3.442
Herkunft: NRW
Postid: 7710
|
|
Den folgemonat bekommt man auch noch angezeigt, wenn man den farbig markierten Code hinzufügt:
Zitat: |
$aktuell = date("-m-");
$aktuell_n = date("-m-",mktime(0,0,0,date(m)+1,date(d),date(Y)));
$geb = "SELECT username, birthday from bb1_users where birthday != '0000-00-00' AND (birthday LIKE '%$aktuell%' OR birthday LIKE '%$aktuell_n%') ORDER BY birthday";w |
|
oder einfach die Zeilen austauscht:
code: |
1:
2:
3:
|
$aktuell = date("-m-");
$geb = "SELECT username, birthday from bb1_users where birthday != '0000-00-00' AND birthday LIKE '%$aktuell%' ORDER BY birthday"; |
|
code: |
1:
2:
3:
4:
|
$aktuell = date("-m-");
$aktuell_n = date("-m-",mktime(0,0,0,date(m)+1,date(d),date(Y)));
$geb = "SELECT username, birthday from bb1_users where birthday != '0000-00-00' AND (birthday LIKE '%$aktuell%' OR birthday LIKE '%$aktuell_n%') ORDER BY birthday";w |
|
siehe hier
das funktioniert auch im Dezember.
Nur wird da der Januar vor dem Dezember angezeigt, da nach Datum sortiert wird.
Mal sehen ob ich die beiden getrennt anzeigen kann.
Ist ja noch etwas Zeit bis Dezember.
LG
haumi
__________________
Gelassen das hinnehmen, was nicht zu ändern ist,
engagiert angehen was man gestalten kann.
|
|
07.03.2011 20:18 |
|
|
|
Hi,
habe es bei mir im Board mit tpl und allen Geburtstagen.
Gibt es die Möglichkeit die sternzeichen und Avatare noch einzufügen?
Gruß katze2ooo
__________________
|
|
07.03.2011 21:04 |
|
|
|
Hi, ist schon etwas älter das Thema aber könnte man den für php7.4 einbauen oder braucht man dafür einen extra Hack?
__________________ Wer Fehler sieht und liest darf diese für sich behalten
|
|
06.04.2022 20:05 |
|
|
|