Datum, überschrift Text ausgeben

Rockfreak

Aktives Mitglied
Thread Starter
Dabei seit
11.11.2008
Beiträge
104
Reaktionspunkte
0
Hi,

ich habe eine einfache Tabelle angelegt mit ID (AI), Date, Ueberschrift und Text.

Ich möchte das er mir das Datum automatisch einfügt und ich mir dann den Text mit der Überschrift und dem dazugehörien Datum anzeigen lassen kann.
Wenn ich in der Tabelle Date eingebe kommt er immer mit ungültigen Value und wenn ich es einfach auf Timestamp setze macht er die Tabelle. Warum? Was braucht Date, damit es geht, vorallem automatisch. Bisher schreibt er ncihts in die Tabell, liegt wohl an date... Verbindung zur DB klappt aber.
Hab auch schon gelesen wofür die einzelnen Dinge da sind und Date reicht mir vollommen, da ich die Zeit nciht brauche.

Danke aus dem kalten Kiel
 
Mit PHP?

Warum nimmst du nicht einfach den Timestamp in der DB? PHP ist nicht grad mein Spezialgebiet, aber eventuell übergibst du einen String als Datum. Ich weiß nicht, ob PHP das als Datum akzeptiert.

Eventuell hilft eine Formatierung:
Code:
$datum = date("d.m.Y",$timestamp);
 
Vielen Dank, ich habs nun auch schon fast. Er gibt mir das Datum mit 22.12.2022 aus.
Woran kann das denn liegen.
Ich bekomme das datum mit:$timestamp = time();
$date = date("d.m.Y",$timestamp);
Und dann speicher ich das in die DB, aber da steht dann nur: (id) 8 (date)2022-12-20 (top)wo ist (text)das datum?

inder DB habe ich das datum mit YYYY-MM-DD angegeben
 
Zuletzt bearbeitet:
Hi,

ich mache das immer so:

CREATE TABLE gugus(
id INT NOT NULL AUTO_INCREMENT,
datum DATETIME DEFAULT NULL,
ueberschrift VARCHAR(100),
PRIMARY KEY(id)
)

INSERT INTO gugus( datum, ueberschrift ) VALUES( now(), 'Meine Überschrift' );

mysql> select * from gugus;
+----+---------------------+-------------------+
| id | datum | ueberschrift |
+----+---------------------+-------------------+
| 1 | 2009-12-25 02:01:32 | Meine Überschrift |
+----+---------------------+-------------------+
1 row in set (0.01 sec)

P.S.: Im Create Statement würde ich das Datumsfeld nicht DATE nennen, da es ein reserviertes Schlüsselwort für den Datentyp ist. Das könnte möglicherweise zu Problemen führen.
 
Zuletzt bearbeitet:
Also ich habe das jetzt so gemacht.
$topinput=$_POST["ueberschrift"];
$inhaltinput= $_POST["inhalt"];
$query ="INSERT INTO news(datum, ueberschrift, text) VALUES(now(), '$topinput', '$inhaltinput')";
mysql_query($query);

aber dann macht er das Datum falsch:
uer Test: buhhhhhh
2003-01-20 10:00:00
was nu: was weiß ich denn
2003-01-20 10:00:00
bam: bam
2010-01-03 15:39:35
jetzt: vielleicht?
2022-12-20 09:00:00

hatte das vorher mit nem Timestamp in php gemacht und da ist dann das Datum richtig

aber schon mal sehr gute Tipps danke
 
Also ich habe das jetzt so gemacht.
$topinput=$_POST["ueberschrift"];
$inhaltinput= $_POST["inhalt"];
$query ="INSERT INTO news(datum, ueberschrift, text) VALUES(now(), '$topinput', '$inhaltinput')";
mysql_query($query);

aber dann macht er das Datum falsch:
uer Test: buhhhhhh
2003-01-20 10:00:00
was nu: was weiß ich denn
2003-01-20 10:00:00
bam: bam
2010-01-03 15:39:35
jetzt: vielleicht?
2022-12-20 09:00:00

hatte das vorher mit nem Timestamp in php gemacht und da ist dann das Datum richtig

aber schon mal sehr gute Tipps danke

Hallo Rockfreak,

Du postest hier drei verschiedene Zeitstempel "2003-01-20 10:00:00", "2003-01-20 10:00:00" und "2022-12-20 09:00:00". Wie sind diese entstanden?????? Was war das INSERT-Statement? Die mysql-Funktion "now()" nimmt immer das aktuelle Datum/Zeit des Rechners/Servers auf dem mysql läuft und Du das INSERT-Statements ausführst.

Ich bin sehr verwirrt und verstehe nicht, was Du gemacht hast...

Vielleicht hilft Dir ja das weiter:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_now
 
Zuletzt bearbeitet:
Ich kapiere es auch nicht. Warum now() wenn es den Timestamp der DB gibt?

Einfach das DB Feld als Timestamp definieren und gut is. :noplan:
 
Weil das auslesen eines Timestamps relativ mühsam ist, glaube ich. Kann mich dunkel erinnern ... oder war das wegen unterschiedlicher Datumssystem in DB und Host? Irgendsowas.
 
Client und Server sind hier eigentlich nicht relevant. Da der Code auf dem Server ausgeführt wird, liefert now() die Serverzeit. Der Unterschied ist nur, dass mit now() die Zeit von php ermittelt wird und mit Timestamp die DB die Zeit ermittelt.

Timestamp ist ja letztlich nichts anderes als eine Autowert-Funktion für die Zeit. Die darf natürlich nicht mit in den Insert String. Bei einem Timestamp-Feld muss der String lauten:

$query ="INSERT INTO news(ueberschrift, text) VALUES('$topinput', '$inhaltinput')";
 
Der Unterschied ist nur, dass mit now() die Zeit von php ermittelt wird und mit Timestamp die DB die Zeit ermittelt.

Meiner Meinung nach irrst Du da! now() ist eine mysql- und keine php-Funktion!

Siehe hier und hier.

Wie könnte ich sonst im MySQL-Monitor folgendes SELECT-Statement absetzen?

PHP:
mysql> select now() from dual;
+---------------------+
| now()               |
+---------------------+
| 2010-01-07 19:33:15 |
+---------------------+
1 row in set (0.00 sec)
 
Ah. Ok. Danke für die Info. In PHP bin ich nicht gerade zuhause. Normalerweise wurschtele ich in ASP rum.

Hab grad auch nochmal nachgesehen.. date liefert in php das aktuelle Datum.
 
Hi,

danke für die vielen Tipps. Es funktioniert jetzt ohne das ich sagen kann, was ich anders gemacht hätte :)

Ich habe jetzt das Datum und die Zeit mit now() bekommen und es wird mir jetzt auch richtig ausgegeben und auch in die Tabelle gespeichert.

Hab mir aber eute links mal in meine Favoriten gehauen, da ich die bestimmt noch brauchen werde ;)
 
Also jetzt nur noch eins :)

Ich lese die Datenbank so aus:

$query = "SELECT * FROM news ORDER BY datum DESC LIMIT 2";
$result = @mysql_query($query)
or die("Fehler beim Selectbefehl");


echo("<table width='400' border='1' cellspacing='0' cellpadding='0'><tr><td><b>Ueberschrift:</td><td><b>inhalt:</td><td><b>Datum:</td><td>id</td></tr>");

while($row = mysql_fetch_assoc($result))
{
$id = $row["id"];
$date = $row["datum"];
$ueberschrift = $row["ueberschrift"];
$inhalt = $row["text"];
echo("<tr><td>$ueberschrift:</td><td>$inhalt <br></td><td>$date</td><td>$id</td></tr>");
}

echo("</table>");

klappt auch so weit alles, nur hätte ich gern die 2 Datensätze die ich brauche, in jeweils einer Variablen, da die jeweils in einem Div Container rein sollen mit Datum und Text, Id ist zu vernachlässigen.

Danke
 
Zurück
Oben Unten