Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[z.Z. keine Fragen] MySQL - Technische Frage
#1
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:
Keinen Support per PN, eMail und Messenger
computerhartware.de
GIGA - Spielen geht immer!
Zitieren
#2
Der einfachste Weg wäre Tag, Monat und Jahr in eigenen Spalten zu speichern, so dass du einfach nach Monat sortiert abfragen kannst.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Nur, wie mache ich das mit sortieren? Und in welchem "Type" soll ich die einzelnen Tabellen einstellen?
Keinen Support per PN, eMail und Messenger
computerhartware.de
GIGA - Spielen geht immer!
Zitieren
#4
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.
Vantage-Forum: http://vantage-forum.de/
Zitieren
#5
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]";
}
?>
Keinen Support per PN, eMail und Messenger
computerhartware.de
GIGA - Spielen geht immer!
Zitieren
#6
ODER muss ORDER heißen.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#7
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*)"
Keinen Support per PN, eMail und Messenger
computerhartware.de
GIGA - Spielen geht immer!
Zitieren
#8
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?
Keinen Support per PN, eMail und Messenger
computerhartware.de
GIGA - Spielen geht immer!
Zitieren
#9
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.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#10
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.
Keinen Support per PN, eMail und Messenger
computerhartware.de
GIGA - Spielen geht immer!
Zitieren