MyBB.de Forum

Normale Version: [z.Z. keine Fragen] MySQL - Technische Frage
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Auf meiner Homepage will ich die Geburtstage per MySQL ausgeben, die ich dann noch in der Datenbank speichern werde. Nun, also Skript für Verbindung ist fertig, Tabellen sind auch schon fertig, nun hänge ich aber, denn ich möchte nicht alle 31 Geburtstage gelistet haben, sondern nur die der nächsten 4 (oder 7) Tage. So wollte ich das ausgeben:
PHP-Code:
include "mysql.php"// Verbindung
$abfrage mysql_query("SELECT * FROM `gebtage`");
while(
$row mysql_fetch_assoc($abfrage)) {
     echo 
"<b>$row[name] $row[date]";

"name" ist hald der Name und "date" der geburtstag. Wobei "date" den Typ INT hat in MySQL und "name" den Typ "TEXT".
Könnte mir hierbei jemand helfen?
Hat keiner einen Rat?
Habe außerdem gemerkt, dass das mit date und INT nicht hinhaut. Muss also anderer Type sein, den man verwenden muss.Shy:question:
Der einfachste Weg wäre Tag, Monat und Jahr in eigenen Spalten zu speichern, so dass du einfach nach Monat sortiert abfragen kannst.
Nur, wie mache ich das mit sortieren? Und in welchem "Type" soll ich die einzelnen Tabellen einstellen?
Mal davon ausgehend, dass es jetzt 3 Felder (tag, montag, jahr) gibt:

PHP-Code:
$abfrage mysql_query("SELECT * FROM `gebtage` ODER BY monat ASC"); 
Für die Felder tag montag und jahr kannst du dann auch INT verwenden, weil ja reine Zahlenwerte gespeichert werden.
Es kommt folgende Fehlermeldung:
Zitat:Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/gamerstrix/klasse/index.php on line 110
bei diesem Code:
PHP-Code:
/* Diese Daten teilt dir dein Provider mit: */
$MYSQL_HOST "localhost";
$MYSQL_USER "";
$MYSQL_PW "";
$MYSQL_DB "";

$conn mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PW);      /* verbindet zu MySQL an sich */
mysql_select_db($MYSQL_DB$conn);     /* verbindet zu der gewählten Datenbank auf dem Server */

$abfrage mysql_query("SELECT * FROM `gebtage` ODER BY monat ASC");
while(
$row mysql_fetch_assoc($abfrage)) {
     echo 
"<b>$row[name] $row[tag] $row[monat] $row[jahr]";
}
?>
ODER muss ORDER heißen.
Funktionert, danke an euch.Smile
Doch nun noch eine Frage, es wird jetzt zb das angezeigt:
Zitat:Dennis 13.07.1991
Doch nun möchte ich das angezeigt wird wie alt er wird.
"Name Datum (wird *alter*)"
Abgesehen das der post drüber auch noch gut wäre, möchte ich noch nicht alle 31 Geburtstage gelistet haben. Und zwar alle von dem aktuellen Monat. Wie stelle ich das an?
PHP-Code:
$abfrage mysql_query("SELECT * FROM `gebtage` WHERE monat = '".date("m")."' ORDER BY monat ASC"); 
Das Alter musst du ausrechnen lassen, also z.B. das Geburtstatum über mktime() in einen Timestamp umwandeln und die Differenz zum Timestamp der aktuellen Zeit errechnen.
Ich weiß was du meinst, bloß im PHP-Manual ist das ziemlich komisch erklärtRolleyes, da steht auch nicht wie genau ich dann zum Ergebnis komme.
Wie komme ich nun genau zum Timestamp?
mktime(0, 0, 0, 13, 07, 1991);
Und dann?

Ich soll:

"aktuelle Zeit-Timestamp" - "gebtag-Timestamp" = $Timestamp
Und wie wandle ich ihn in die endgültige Zahl um?

Das ist doch dann schon alles massentauglich?

PS: WHERE hat funktioniert.
Seiten: 1 2