PhpMyAdmin

Status
Niet open voor verdere reacties.

rubie

Gebruiker
Lid geworden
29 jul 2007
Berichten
16
Hallo,

Ik maak gebruik van een phpmysql database.
Nu zou ik willen dat als de gegevens van een formulier in de database worden opgeslagen, automatisch het datumveld in de tabel ingevuld wordt (met de huidige tijd, datum) (zonder dat er een datum in het formulier moet ingevuld worden of een datum vanuit php moet worden doorgestuurd --> dit laatste resulteert telkens in een nullwaarde in de database)

Weet iemand hier een oplossing voor?

Groeten,
 
Je kunt het datumveld de eigenschap "timestamp" geven. Dat werkt op deze manier:
PHP:
mysql> CREATE TABLE test
    -> ( id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT
    -> , datum TIMESTAMP
    -> , tekst VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test (tekst) values ('Hallo');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+---------------------+-------+
| id | datum               | tekst |
+----+---------------------+-------+
|  1 | 2008-03-18 02:31:39 | Hallo |
+----+---------------------+-------+
1 row in set (0.00 sec)

Bij het toevoegen van een record aan de tabel wordt automatisch de huidige datum en tijd vastgelegd. Het enige waar je op moet letten is dat wanneer je een bestaand record aanpast de datum/tijd ook aangepast wordt:
PHP:
mysql> update test
    -> set tekst = 'Hallo Again'
    -> where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from test;
+----+---------------------+-------------+
| id | datum               | tekst       |
+----+---------------------+-------------+
|  1 | 2008-03-18 02:37:34 | Hallo Again |
+----+---------------------+-------------+
1 row in set (0.00 sec)
 
Bedankt!

Nu, als ik timestamp gebruik voor de datum krijg ik: 20080318135713 ipv 2008-03-18 13:57:13 is dit normaal of moet ik eerst nog iets instellen om de datum met streepjes en dubbelpunten te krijgen?

Is het ook mogelijk om in te stellen dat de datum enkel gewijzigd wordt wanneer ik een nieuwe record toevoeg?

Groeten,
 
De opmaak van datum/tijd wordt door MySQL normaal gesproken terug gegeven als '2008-03-18 13:57:13'. Waarom dat bij jou anders is durf ik niet te zeggen. Misschien wordt door de pagina waarmee je de gegevens ophaalt de datum en tijd bewerkt?

Om ervoor te zorgen dat de timestamp alleen bijgewerkt wordt bij het toevoegen van een nieuw record geef dan de kolom een default waarde mee:
PHP:
CREATE TABLE test
( id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT
, datum TIMESTAMP DEFAULT CURRENT_TIMESTAMP
, tekst VARCHAR(100)
);
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan