php.de

Zurück   php.de > php.de Intern > Beitragsarchiv

Beitragsarchiv Nur gucken, nichts anfassen. Das Archiv der Beiträge vergangener Zeiten.

 
 
LinkBack Themen-Optionen
Alt 28.03.2005, 16:38  
Benutzer
 
Registriert seit: 16.10.2004
Beiträge: 90
freitz
Standard Geburtstags-Script

Hi Leutz
ich bräuchte ein Geburtstags-Script, welches mir die nächsten 5 Geburtstage aus einer Datenbank ausliest & ausgiebt.
Es muss nicht unbedingt ein komplettes Script sein, Code-Schnippsel oder eine Idee wie ich das mit php & sql realisieren könnte.
@ Idee : bitte nicht zu allgemein
freitz ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.03.2005, 21:48  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

vieleicht mal anschauen, basiert zwar nicht auf php & sql, sondern auf php und textdateien, aber vieleicht hilfts dir ja weiter. ansosnten kannst du ja mal posten was genau dein problem ist.

http://franzcarlj.fr.funpic.de/scripts.php

mfg
robo47
robo47 ist offline  
Alt 29.03.2005, 09:17  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zu mehr, als zu einer allgemeinen Idee reichen deine Angaben nicht. Ich geh mal davon aus, dass du die Geburtstage in einer Tablle mit dem Namen gtage und den Attributen id, geb_datum, name, etc hast, und du die nächsten fünf Geburtstage ab dem heutigen Datum ausgeben willst:
PHP-Code:
<?php
$act_datum 
time();
$jahr date('Y'$act_datum);
$sql "SELECT DATE_FOMAT(geb_datum, '$jahr-%m-%d' as geb_tag, name, vorname
               FROM gtage
               WHERE geb_$tag > CURRENT_DATE()
               LIMIT 5"
;
if (!
$res mysql_query($res)) die mysql_error();
echo 
"<table>\n<tr><th colspan='3'>N&auml;chste Geburtstage</th></tr>\n";
echo 
"<tr><td>Datum</td><td>Vorname</td><td>Name</td></tr>\n";
while(
$obj mysql_fetch_object($res)){
    echo 
"<tr><td>$obj->vorname</td>";
    echo 
"<td>$obj->name</td>";
    
$geb_datum implode('.'reverse(explode('-'$obj->geb_tag)));
    echo 
"<tr><td>$geb_datum</td></tr>\n";
}
echo 
"</table>";
?>
Hab das Ganze nicht getestet, aber als Idee sollte es genügen.
__________________
Gruss
L
lazydog ist offline  
Alt 29.03.2005, 09:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Grundidee wäre bei mir folgende:

Am einfachsten ist es, wenn man aus dem Datum die Anzahl der Tage in dem Jahr extrahiert: geburtstag am 31.1. eines Jahres wäre zum Beispiel der Tag 31, am 10.2. wäre Tag 41 usw. Nun muss man dies per Funktion von MySQL (sofern vorhanden - das weiß ich nämlich nicht genau) auslesen und dann halt bestimmen, dass die Zahl >= der Zahl vom heutigen Datum sein muss. Wenn man dies hat stößt man nur auf ein problem: Am Jahresende passt das nicht mehr, wenn man z.B. den 30.12. schreibt, am 31.12. einer Geburtstag hat und die nächsten 4 Geburtstage z.B. im April nächstes Jahr liegen. Man muss also die selbe Tabelle nochmal mit +365 (bzw. 366 bei einem Schaltjahr) noch einmal hinten dranhängen, damit man die nächsten 4 Geburtstage ebenfalls noch ausgegeben bekommt. BTW: Sortiert wird nach dem Datum logischerweise

Wie die Abfrage nun komplett auszusehen hat kann ich nicht sagen, da mir momentan selber die Zeit dazu fehlt das mal auszuprobieren. Aber möglich ist das sicherlich. Die Idee steht oben, nun noch ein wenig in der Doku rumwühlen, ein bisschen das Ding zwischen den Ohren benutzen und man sollte irgendwann zur rich´tigen Lösung kommen. Notfalls wäre eine 2. SQL-Abfrage eventuell genau das Richtige, um es möglichst einfach zu halten
MrNiceGuy ist offline  
Alt 29.03.2005, 14:51  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Code:
CREATE TEMPORARAY TABLE temp
    SELECT feld
    FROM tabelle
    WHERE DATE_FORMAT( geburtsdatum, "%m%d" ) >= DATE_FORMAT( NOW(), "%m%d" )
    ORDER BY DATE_FORMAT( geburtsdatum, "%m%d");

INSERT INTO temp
    SELECT feld
    FROM tabelle
    WHERE geburtsdatum
        AND DATE_FORMAT( geburtsdatum, "%m%d" ) < DATE_FORMAT( NOW(), "%m%d" )
    ORDER BY DATE_FORMAT( geburtsdatum, "%m%d" );

SELECT *
FROM temp
LIMIT 5;
Es ginge auch mit UNION, das hat sich aber manchmal ein bißchen bockig mit ORDER BY.
tapferesschneiderlein ist offline  
Alt 29.03.2005, 15:02  
Erfahrener Benutzer
 
Registriert seit: 30.06.2004
Beiträge: 619
tapferesschneiderlein
Standard

Bzw. wenn ich nochmal drüber nachdenke ...
Code:
SELECT 
    feld
FROM 
    tabelle
WHERE 
    geburtsdatum
ORDER BY 
    IF( DATE_FORMAT( geburtsdatum, "%m%d") >= DATE_FORMAT( NOW(), "%m%d"), 0, 1), 
    DATE_FORMAT( geburtsdatum, "%m%d")
LIMIT 5
tapferesschneiderlein ist offline  
Alt 29.03.2005, 16:57  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Also wenn, dann mindestens LIMIT 0,5. Ansonsten habe ich die Abfrage noch nicht testen können, werde dies aber bei Gelegenheit nachholen.
MrNiceGuy ist offline  
Alt 30.03.2005, 08:13  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MrNiceGuy
Also wenn, dann mindestens LIMIT 0,5. Ansonsten habe ich die Abfrage noch nicht testen können, werde dies aber bei Gelegenheit nachholen.
LIMIT 5 ist genau das gleiche wie LIMIT 0,5 (http://dev.mysql.com/doc/mysql/de/select.html)
__________________
Gruss
L
lazydog ist offline  
Alt 31.03.2005, 01:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

OK, hast gewonnen Wusste nicht, dass das auch bei nem SELECT funktioniert, hatte es aber wenn ich ehrlich bin auch noch nie ausprobiert
MrNiceGuy ist offline  
 


Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Diverses aus meinem Apache Logs robo47 Server, Hosting und Workstations 5 25.05.2007 22:45
Script beendet sich ohne Fehlermeldung Zahl PHP Tipps 2006 6 04.06.2006 20:41
passwort script problem PHP Tipps 2006 8 15.02.2006 10:30
phpBB Loginscript in eigenes Login Script einbinden 2wuck PHP Tipps 2007 4 19.12.2005 23:10
[Erledigt] php script und ixed PHP Tipps 2005-2 14 12.10.2005 13:34
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
[Erledigt] python script mit php aufrufen... PHP-Fortgeschrittene 1 17.11.2004 17:11
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
geburtstags script mysql, geburtstags script

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.