PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Datum zu jedem Datenbankeintrag ausgeben (http://www.selfphp.de/forum/showthread.php?t=17381)

wad 07.08.2007 17:58:33

Datum zu jedem Datenbankeintrag ausgeben
 
Hallo Leute

diesen Beitrag > http://www.selfphp.de/forum/showthre...ighlight=Datum hab ich gelesen und es geschafft, das Datum des letzten Beitrags anzuzeigen.

Was ich aber brauche ist folgendes:

1. Ein Datenbankeintrag wird gemacht und auf der Website angezeigt
2. Zu diesem Beitrag soll nun auch das Datum angezeigt werden, welches zeigt, wann der Eintrag gemacht wurde.
3. Ein neuer Datenbankeintrag wird gemacht und wieder wird das Datum mit angezeigt, welches zeigt, wann dieser neue Eintrag gemacht wurde.
4. etc.

Ich habe eine Tabelle mit drei Spalten:


Code:

$sql = "CREATE TABLE IF NOT EXISTS ".$cfg['tab']['4_form']."
(
  `id_4_form` int(11) NOT NULL auto_increment,
  `datum` date NOT NULL default '0000-00-00',
  `eintrag` tinytext NOT NULL,
  PRIMARY KEY  (`id_4_form`)
) TYPE=MyISAM
    ";
$db->query($sql);
[

Schickt man das Formular ab, werden die Daten in die DB eingetragen:

PHP-Code:


if ($_POST["submit"]) {

    
$cfg['tab']['4_form'] = $cfg['sql']['sqlprefix']."_4_form";
....



Das funktioniert soweit, d.h. die Inhalte werde bei 'eintrag' eingefügt (und die ID um eins erhöht und ebenfalls eingetragen). Beim Datum wird bis jetzt in jedem neuen Eintrag nur der Default-Wert eingetragen.

Code:

$sql = "INSERT INTO ".$cfg['tab']['4_form']."...
Meine Frage an Euch: Was muss ich beim INSERT INTO einfügen, damit ich das aktuelle Datum dort eingetragen bekommen, an dem der Eintrag erfolgt ist?

Bloss die letzte Aktualisierung der Datenbank anzuzeigen, kann ich:

PHP-Code:

$sql2 "UPDATE ".$cfg['tab']['4_form']." SET datum = '$datum';";  
        
$datum strftime('%A').', den '.date('d.m.Y H:i:s').' Uhr.';
        echo 
$datum

Füge ich nun diese $date zur Anzeige der DB-Einträge, steht dort überall einfach das aktuellste Datum. Das bringt mir nix.

Versteht Ihr, wie ich das meine?

Vielen lieben Dank für Eure Hilfe!

wad 07.08.2007 18:54:49

AW: Datum zu jedem Datenbankeintrag ausgeben
 
ähm, ich habe erst jetzt gesehen, dass mein Beitrag wohl eher in die mysql-Rubrik gehört, sorry. Vielleicht kann ein Admin ihn verschieben?

Danke und auch danke für jede Antwort auf meine Frage :-)

vt1816 07.08.2007 20:53:15

AW: Datum zu jedem Datenbankeintrag ausgeben
 
Zitat:

Zitat von wad (Beitrag 104998)
...

Code:

$sql = "INSERT INTO ".$cfg['tab']['4_form']."...
Meine Frage an Euch: Was muss ich beim INSERT INTO einfügen, damit ich das aktuelle Datum dort eingetragen bekommen, an dem der Eintrag erfolgt ist?

...

PHP-Code:


$sql 
"INSERT INTO dateiname ( `feld1` , `feld2` , `feld3` ) VALUES ('', now(), 'abc')"


Zitat:

Zitat von wad (Beitrag 104998)
...

Bloss die letzte Aktualisierung der Datenbank anzuzeigen, kann ich:

PHP-Code:

$sql2 "UPDATE ".$cfg['tab']['4_form']." SET datum = '$datum';";  
        ... 

...

Damit zeigst Du aber nicht die Aktualisierung der Datenbank an, sondern Du aktualisierst die Datenbank!

Socrates 08.08.2007 04:59:41

AW: Datum zu jedem Datenbankeintrag ausgeben
 
Abend!

Zitat:

Zitat von wad (Beitrag 104998)
Code:

$sql = "CREATE TABLE IF NOT EXISTS ".$cfg['tab']['4_form']."
(
  `id_4_form` int(11) NOT NULL auto_increment,
  `datum` date NOT NULL default '0000-00-00',
  `eintrag` tinytext NOT NULL,
  PRIMARY KEY  (`id_4_form`)
) TYPE=MyISAM
    ";
$db->query($sql);

PHP-Code:

$sql2 "UPDATE ".$cfg['tab']['4_form']." SET datum = '$datum';";  
        
$datum strftime('%A').', den '.date('d.m.Y H:i:s').' Uhr.';
        echo 
$datum


  1. Der Speichertyp Datum verlangt bei MySql das Format 0000-00-00 00:00:00, wie du auch in deinem eigenen Code nachlesen kannst. Einsetzen tust du aber dieses Format hier: 00.00.0000 00:00:00!
  1. Ich denke du willst einen Eintrag hinzufügen und nicht einen Eintrag ändern. Also musst du INSERT und nicht UPDATE benutzen.
  1. Zudem weiß ich nicht, was dieses default in deinem SQL-Befehl soll. Wenn du hauptsächlich INSERT verwenden willst, wovon ich stark ausgehe, dann ist es klar, dass wenn du den Wert auf default stellst, als erstes auch default eingetragen wird.

MfG, Andy

wad 08.08.2007 11:19:02

AW: Datum zu jedem Datenbankeintrag ausgeben
 
Hallo Andy
vielen Dank für die Antwort (danke auch an vt1816)!

Speichertyp des Datums:
Ich vermute mal, dass es keine Rolle spielt, ob das Format korrekt ist. In die DB eingesetzt werden müsste es so oder so (oder nicht?)

Eintrag hinzufügen:
Ja, das stimmt: ich möchte, dass es automatisch zu meinem neuen Eintrag das aktuelle Datum in die DB einfügt.

Default-Wert Datum
ok, ich hab den default-Wert rausgenommen.

Leider: zu meinem aktuellen Eintrag wird trotzdem kein Datum in die DB eingefügt. Ich hab den sql-Befehl folgendermassen geändert:

Code:

        $sql2 = "INSERT INTO ".$cfg['tab']['4_form']." SET datum = '$datum';"; 
        $datum = strftime('%A').', den '.date('d.m.Y H:i:s').' Uhr.';
        echo $datum;

Was stimmt da nicht?

Danke für die Antworten!
mit Gruss wad

Socrates 09.08.2007 01:07:51

AW: Datum zu jedem Datenbankeintrag ausgeben
 
Abend!
Es macht was aus, wie du das Datum angibst. Auserdem ist date kein varchar und deshalb hat da auch kein ", den" etwas zu suchen. zudem müsste dein date im SQL-Befehl, wenn du auch eine Zeit angeben willst datetime und nicht nur date heißen.
Wenn du das alles änderst sollte es also klappen. Das ", den" kannste bei der ausgabe mit Hilfe der Mysql-Funktionen erzeugen.
MfG, Andy

vt1816 09.08.2007 08:29:13

AW: Datum zu jedem Datenbankeintrag ausgeben
 
Zitat:

Zitat von wad (Beitrag 105020)
... (danke auch an vt1816)!

Wofür, wenn Du Deinen Code nicht anpasst?


Zitat:

Zitat von wad (Beitrag 105020)
...
Leider: zu meinem aktuellen Eintrag wird trotzdem kein Datum in die DB eingefügt. Ich hab den sql-Befehl folgendermassen geändert:

Code:

        $sql2 = "INSERT INTO ".$cfg['tab']['4_form']." SET datum = '$datum';"; 
        $datum = strftime('%A').', den '.date('d.m.Y H:i:s').' Uhr.';
        echo $datum;

...

Wer lesen kann ist klar im Vorteil (siehe oben):

PHP-Code:

$sql "INSERT INTO dateiname ( `feld1` , `feld2` , `feld3` ) VALUES ('', now(), 'abc')"

(an Deine Bedingungen noch anpassen)


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:32:39 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.