unieke tijdstempel in database opslaan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny A-noniem

Danny A-noniem

13/08/2012 13:00:17
Quote Anchor link
hallo
ik ben maar eens aan een database begonnen.
lukt verder goed,
echter hoe schrijf ik een variable weg naar een database?
ik wil graag een unieke tijdstempel wegschrijven, zodat ik daar straks makkelijk op kan sorteren.
(laatste eerst )
dit is wat ik heb

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

/**
 * @author danny
 * @copyright 2012
 */




 $con = mysql_connect("bladiebla");
 if (!$con)
   {

   die('Could not connect: ' . mysql_error());
   }

 
mysql_select_db("carousell", $con);
 
mysql_query("INSERT INTO Naam VALUES ('test3')");
mysql_query("INSERT INTO datum VALUES ('.SELECT CURTIME() + 0.')");
mysql_query("INSERT INTO text VALUES ('test21')");

mysql_close($con);
 ?>

zie nu in de databse staan bij datum
0000-00-00 00:00:00
 
PHP hulp

PHP hulp

22/12/2024 10:00:28
 
Chris PHP

Chris PHP

13/08/2012 13:06:50
Quote Anchor link
Waarom gebruik je die(); ?

Heb je hier welleens naar gekeken? UNIX_TIMESTAMP
Gewijzigd op 13/08/2012 13:07:55 door Chris PHP
 
Danny A-noniem

Danny A-noniem

13/08/2012 13:14:14
Quote Anchor link
tja uit de vorbeelden die ik overal lees zie ik de () staan.
ben de eerste keer met een simpele database bezig, krijg de naam en text wel erin omdat dit geen var is.
maar met de tijd zit ik een beetje te kloten.
hij zet nu alles op nul in de database ipv een tijdstempel.
de variablen die ken ik wel hoe ik die moet aanspreken, maar hoe zet ik deze in de databse.
ook wanneer ik deze eerst zo doe blijft het leeg of hij plaatst helemaal niets in de database.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$time = NOW();


volgends het boek zou dit moeten kunnen zo.. echter helaas..
 
Kris Peeters

Kris Peeters

13/08/2012 13:18:44
Quote Anchor link
Hier is een uitstekende tutorial over datum en tijd in mySQL.

http://www.phphulp.nl/php/tutorial/overig/datum-en-tijdfuncties-in-mysql/519/
 
Chris PHP

Chris PHP

13/08/2012 13:19:10
Quote Anchor link
Heb je het al eens met UNIX_TIMESTAMP rechtstreeks in je query geprobeerd? Dit geeft gewoon de unix timestamp van het moment van insert/update.

Die(); wordt niet gebruikt, is niet echt gebruikersvriendelijk en hij geeft je exacte foutmelding in beeld. Wat betekend dat kwaadwillende zo sneller lekken kunnen ontdekken.

Maak een nette foutafhandeling voor je queries en gebruik geen die();
 
- SanThe -

- SanThe -

13/08/2012 13:19:12
Quote Anchor link
INSERT INTO datum VALUES

Heb jij een kolom die datum heet?
 
Danny A-noniem

Danny A-noniem

13/08/2012 13:23:25
Quote Anchor link
yep die heb ik.
heb 3 kolomen gemaakt
Naam
datum
text

@ chris
ja zoals al gezegt is dit om even te kijken hoe het gaat en werkt.
dit draait dan ook niet zichtbaar voor andere.
je bedoeld dus dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_query("INSERT INTO datum VALUES ('UNIX_TIMESTAMP')");

ga ik nu ff testen

@kris

die gaan we ook even doorspitten tnx
 
Chris PHP

Chris PHP

13/08/2012 13:26:49
Quote Anchor link
Nee, timestamp gebruik je zo.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_query("INSERT INTO datum VALUES UNIX_TIMESTAMP");
 
- SanThe -

- SanThe -

13/08/2012 13:27:12
Quote Anchor link
- SanThe - op 13/08/2012 13:19:12:
INSERT INTO datum VALUES

Heb jij een kolom die datum heet?


Sorry. Ik bedoel tabel.

Laat je database structuur eens zien.
Gewijzigd op 13/08/2012 13:27:54 door - SanThe -
 
Danny A-noniem

Danny A-noniem

13/08/2012 13:35:44
Quote Anchor link
euhh hoe gaat dat dan hihi

ik heb een database gemaakt carousell.
daarin 3 tabellen
Naam
datum
text



meer is er niet
 
Chris PHP

Chris PHP

13/08/2012 13:38:26
Quote Anchor link
Ik snap wat Santhe bedoeld,

Het lijkt erop dat je nu 3 tabellen hebt. Namelijk:

Tabel: naam
Tabel: datum
Tabel: text

Maar naar alle waarschijnlijkheid zijn dit fields ipv tabellen. En zullen deze fields in een tabel staan bijvoorbeeld log

Dan zou je query dus zo worden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_query("INSERT INTO log VALUES datum = UNIX_TIMESTAMP");


Dan kunnen je andere 3 queries ook samengevoegd worden en komt er dan zo uit te zien.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("INSERT INTO log VALUES Naam='test3', Datum=UNIX_TIMESTAMP, Text='test21'");
?>
Gewijzigd op 13/08/2012 13:39:32 door Chris PHP
 
- SanThe -

- SanThe -

13/08/2012 13:41:19
Quote Anchor link
1 Tabel met 3 velden lijkt mij beter. Dan heb je de gegevens bij elkaar. Nu heb je een tabel met datums er in, maar wat kan je daar nu nog aan zinnige informatie uithalen. Het staat helemaal los van de naam en van de tekst.
 
Danny A-noniem

Danny A-noniem

13/08/2012 13:42:58
Quote Anchor link
mm dat zou het misschien wel wat makkelijker maken dan..
ik ga straks eens kijken hoe dat gaat.
dan meld ik me weer.
ik weet wat je bedoeld ,
 
- SanThe -

- SanThe -

13/08/2012 13:45:36
Quote Anchor link
Kijk ook hier eens: http://phptuts.nl/view/41/
 
Chris PHP

Chris PHP

13/08/2012 13:48:56
Quote Anchor link
- SanThe - op 13/08/2012 13:41:19:
1 Tabel met 3 velden lijkt mij beter. Dan heb je de gegevens bij elkaar. Nu heb je een tabel met datums er in, maar wat kan je daar nu nog aan zinnige informatie uithalen. Het staat helemaal los van de naam en van de tekst.


Volgens mij moet een tabel toch minimaal 1 veld hebben om iets te kunnen schrijven? Lege tabellen kunnen toch geen insert queries op gedraaid worden?

Aangezien zijn eerste queries INSERT INTO datums VALUES 'test' is zonder enig veld op te geven, zal dat niet gaan werken lijkt me.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

13/08/2012 13:56:42
Quote Anchor link
Waarom maak je er trouwens geen TIMESTAMP kolom van, die krijgt automatisch de huidige datum/tijd bij een insert of update (tenzij je het expliciet aangeeft)
 
John D

John D

13/08/2012 22:39:14
Quote Anchor link
De juiste syntax:
INSERT INTO tableName VALUES('someField', 'someOtherField', UNIX_TIMESTAMP(now()))
De tip van Ger heeft overigens ook mijn voorkeur. Vergeet dat UNIX_TIMESTAMP gedoe.
Gewijzigd op 13/08/2012 22:40:34 door John D
 
Eddy E

Eddy E

14/08/2012 07:22:13
Quote Anchor link
Waarom een TIMESTAMP niet niet gewoon DATETIME? Dat is veel makkelijker uit te lezen (hoef je niet om te rekenen naar een datum met tijd) en kan je ook prima op sorteren.

Daarnaast kan je prima meerdere kolommen tegelijkertijd vullen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO carousell
SET (naam, datum, text) VALUES ('voorbeeldnaam', NOW(), 'dit is de tekst');


Als je automatisch een uniek nummer(tje) wilt kan je een kolom ID aanmaken.
En daar zet je dan de AI (Auto-Increment) aan. Die begint bij 1 te tellen en werkt zo door.
Zo werken nagenoeg alle forums met topics/berichten/webshops/artikelen etc etc etc.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

14/08/2012 07:52:47
Quote Anchor link
Een TIMESTAMP kolom heeft hetzelfde formaat als een DATETIME kolom, dus er hoeft niets omgerekend te worden (wat anders ook niet zou moeten).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.