Toon posts:

[PHP/MYSQL]Date vraagjes

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een formulier gemaakt die wegschrijft in een mysql db. Wanneer ik verzend wordt alles netjes weggeschreven behalve de datum die blijft op 0000-00-00 00:00 staan. De datum wordt in het formulier niet ingevuld en zou op het moment van verzenden zelf een datum aan moeten maken (de huidige serverdatum neem ik aan). Ik heb in het formulier een hidden invoerveld gemaakt die dus de datum zou moeten wegschrijven in de database. Alleen dit veld heeft geen waarde. Hoe krijg ik het voorelkaar om de datum automatisch te laten invoeren zonder een waarde in te hoeven vullen.
Of is makkelijker om het datum invoerveld wel een waarde te geven zoals date(d-m-Y)? Als ik dat doe moet ik dan het veld datum in de db veranderen van het type Date naar bijvoorbeeld init() ?
Deze vragen zijn al gestelt een paar keer, maar ik heb niet precies het antwoord wat ik zocht. Ik kan ook geen code laten zien, want dan moet ik 3 pagina's query gaan sturen :)

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Wat je kunt doen is in je query NOW() op te nemen voor het veld datum.

Over datums in PHP en MySql het volgende :
PHP en MySql gebruiken allebei verschillende manieren om datum uit te drukken.
PHP maakt gebruik van het aantal millisecondes na 1 jan 1970 en MySql maakt gebruik van een numerieke weergave in de vorm van een Long dus 20020202020202 is jaar 2002 maand 02 dag 02 uur 02 minuut 02 seconde 02 ; De type Date en Time vormen samen het type Timestamp.

Voor het rekenen met Datum vanuit PHP naar en van MySql dien je een conversie te plegen op een manier.

Er zijn tig manieren om dit te doen.

Verwijderd

Topicstarter
Dit is mijn query. Het gaat hier om flddate_created. Hoe zou ik die now functie daarin moeten gebruiken dan?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$sSQL = "insert into users (" . 
        "last_name," . 
        "pic_url," . 
        "first_name," . 
        "address1," . 
        "address2," . 
        "address3," . 
        "zip," . 
        "zipletter," . 
        "city," . 
        "email," . 
        "state_id," . 
        "phone_day," . 
        "phone_evn," . 
        "age," . 
        "gender," . 
        "notes," . 
        "user_login," . 
        "user_password," . 
        "date_created," . 
        "agreement_id)" . 
        " values (" . 
        tosql($fldlast_name, "Text") . "," . 
        tosql($fldtvoegsel, "Text") . "," . 
        tosql($fldfirst_name, "Text") . "," . 
        tosql($fldaddress1, "Text") . "," . 
        tosql($fldHuisnummer, "Text") . "," . 
        tosql($fldhntoevoeg, "Text") . "," . 
        tosql($fldzip, "Number") . "," . 
        tosql($fldzipletter, "Text") . "," . 
        tosql($fldcity, "Text") . "," . 
        tosql($fldemail, "Text") . "," . 
        tosql($fldstate_id, "Text") . "," . 
        tosql($fldphone_day, "Text") . "," . 
        tosql($fldphone_evn, "Text") . "," . 
        tosql($fldage, "Number") . "," . 
        tosql($fldgender, "Number") . "," . 
        tosql($fldbank, "Memo") . "," . 
        tosql($flduser_login, "Text") . "," . 
        tosql($flduser_password, "Text") . "," . 
        tosql($flddate_created, "Text") . "," . 
        $fldagreement_id . 
        ")";

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Op vrijdag 15 maart 2002 16:36 schreef vgouw het volgende:
PHP maakt gebruik van het aantal millisecondes na 1 jan 1970
Zijn gewoon secondes, volgens mij.

Rustacean


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Stukje query:
tosql($flddate_created, "Text") . "," .
vervangen door
Nieuw stukje query:
"NOW()" . "," .
Lijkt me.

Rustacean


Verwijderd

Topicstarter
volgens mij werkt die hele now functie niet op mijn server. Of werkt deze functie altijd?

als ik
code:
1
2
3
<?php
echo now();
?>

dan krijg ik:
Fatal error: Call to undefined function: now() in c:\program files\apache group\apache\htdocs\cymtv\date.php on line 2

  • Grum
  • Registratie: Juni 2001
  • Niet online
werkt IN een mysql query ...
code:
1
2
3
4
5
6
mysql> select NOW();
+---------------------+
| NOW()        |
+---------------------+
| 2002-03-18 14:38:08 |
+---------------------+

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Het is ook een MySQL functie, niet een PHP functie.

[edit] Damn, net te laat.

Rustacean


Verwijderd

now() is een mysql functie, geen php functie

edit:
ook al te laat :)

Verwijderd

Topicstarter
ok dat is duidelijk :)

Verwijderd

/me said it before, he'll say it again:

Laat php een timestamp berekenen met time() (opletten waar je server staat) en gooi die erin.
Vind ik handiger (strftime, date etc)
Pagina: 1