datum + tijd + microseconden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kabbi

kabbi

27/10/2006 14:59:00
Quote Anchor link
Hoi,
Onderstaande conde geeft de datum en tijd weer [achter elkaar].

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
  function timestamp($t = null) {
    if ($t == null) {
      $t = time();
    }

    return date('YmdHis', $t);
  }


  echo 'Time stamp: ' . timestamp(time());
?>


Graag zou ik daar de microseconden achter willen plakken. Is dit mogelijk? Hoe zou ik dat kunnen doen?
Ik wil hier een net ingevoerde record uniek maken.

Grt, Kabbi
 
PHP hulp

PHP hulp

22/12/2024 10:09:37
 
Joren de Wit

Joren de Wit

27/10/2006 15:04:00
Quote Anchor link
Volgens mij kan dat niet met de date functie van php. Maar een ingevoerd record uniek maken, in een database soms?

Geef dan in je database het betreffende veld gewoon UNIQUE mee, kan weet je zeker dat je nooit 2 dezelfde waarden in die kolom hebt.
 
Frank -

Frank -

27/10/2006 15:19:00
Quote Anchor link
Deze functie levert geen DATETIME op, dus eigenlijk alleen maar problemen.

Wat versta jij onder uniek? Dat kan 1 veld uit een record zijn, maar ook een combinatie van velden. Met een auto_increment op het id heb je bijvoorbeeld ook al een uniek gegeven te pakken.
 
Kabbi

kabbi

27/10/2006 15:40:00
Quote Anchor link
Hoi,

ik heb twee tabellen. In 1 tabel sla ik gegevens op en in tabel 2 sla ik een gedeelte van deze gegevens op.
Maar later wil ik de gegevens kunnen combineren en vergelijken.
Ik wilde een datum in beide velden uniek maken, tot op de milliseconden, indien mogelijk.

grt. Kabbi
 
Frank -

Frank -

27/10/2006 16:04:00
Quote Anchor link
kabbi schreef op 27.10.2006 15:40:
Hoi,

ik heb twee tabellen. In 1 tabel sla ik gegevens op en in tabel 2 sla ik een gedeelte van deze gegevens op.
Maar later wil ik de gegevens kunnen combineren en vergelijken.
Ik wilde een datum in beide velden uniek maken, tot op de milliseconden, indien mogelijk.

grt. Kabbi
Dat is dan een fout datamodel. Gegevens sla je namelijk slechts 1x op.

Hoe ziet jouw complete datamodel eruit en hoe heb je genormaliseerd?
 
Kabbi

kabbi

27/10/2006 16:12:00
Quote Anchor link
Hoi,

Ja ik weet het, maar ik wilde een dynamisch menu maken. En de gegevens voor dit menu apart in en tabel opslaan. Het menu bestaat[structuur] voor verschillende hoofdthema's uit: een hoofdthema ->subthema -> ow.

Als ik alles uit de 1e [hoofd]tabel haal, ben ik bang dat ik voor elk hoofdtheme aan aparte query moet maken. Plus ik kan niet dynamisch een hoofdthema etc toevoegen dan.

Vandaar dat ik een aparte menu tabel wilde maken, waarin ik dan de datum van toevoeging van de gegevens in de hoofdtabel opsla in de menu tabel, alsook het hoofdthema.

Grt.

Kabbi
 
- -

- -

27/10/2006 16:17:00
Quote Anchor link
geen tijd maar een id:
id int(2) not null auto increment
 
Frank -

Frank -

27/10/2006 16:17:00
Quote Anchor link
Dit lijken mij dan 3 tabellen te worden:
hoofdmenu:
- id, INT, auto_increment
- omschrijving, VARCHAR

submenu:
- id, INT, auto_increment
- id_hoofdmenu, INT, foreignkey met de tabel hoofdmenu op het id
- omschrijving, VARCHAR

onderwerp:
- id, INT, auto_increment
- id_submenu, INT, foreignkey met de tabel submenu op het id
- omschrijving, VARCHAR

Edit: Je gebruikt uiteraard de innoDB-engine van MySQL, maar dat is toch al de beste. MyISAM ondersteunt geen foreignkeys, daar heb je dus niets aan.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Kabbi

kabbi

27/10/2006 16:23:00
Quote Anchor link
Hoi,

De id van de hoofdtabel, waar enkele gegevens in staan is auto increment. Als ik nieuwe gegevens invoer moet ik dus ook iets invoeren in de andere[menu] tabellen. Hoe voer ik nu het id.nr van de tabel waar ik zojuist de gegevens heb ingevoerd in de andere tabellen in?

Zoiets als dit?

SELECT LAST_INSERT_ID() AS hoogste_nummer

//[voor de tabel waar zojuist is ingevoerd en een id.nr is aangemaakt]

Maar wat als iemand anders tegelijkertijd ergens anders ook gegevens aan het invoeren is? Dan zou dit in de war kunnen raken, is het niet? Daarom dacht ik met een datum/tijd/incl microseconden meer zekerheid te hebben.

Grt. Kabbi
Gewijzigd op 01/01/1970 01:00:00 door kabbi
 
Frank -

Frank -

27/10/2006 16:35:00
Quote Anchor link
Met de functie mysql_insert_id() kun je het id van de uitgevoerde INSERT-query opvragen. Dat gaat bij mijn weten altijd goed. De database voert de query uit, geeft aan of dit is gelukt en stuurt het id mee. Daarna zal de database de volgende query uitvoeren.

Wanneer je het echt waterdicht wilt hebben, dan zul je met table-locking aan de slag moeten gaan of een 'echte' database gebruiken, bv. PostgreSQL. Dan maak je een API aan die alles in 1 keer voor jou regelt. Vanuit PHP voer je dan geen queries meer uit, je roept gewoon de desbetreffende API aan en stopt hier de benodigde data in. Zie http://www.postgresql.org/docs/8.1/interactive/server-programming.html voor meer informatie.
 
Kabbi

kabbi

31/10/2006 09:31:00
Quote Anchor link
Hoi,

Dank je wel voor deze informatie! Hier kan ik zeker verder mee.

grt. Kabbi
 



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.