Avatar billede jakobsen Nybegynder
13. maj 2003 - 13:55 Der er 19 kommentarer

php og mysql

hej

jeg har dette jeg gerne vil have i min db:
SELECT DATE_ADD($theday) INTERVAL 1 YEAR

hvordan gør jeg? jeg plejer at gøre noget ala:

mysql_query("INSERT INTO webhotels
        (payetto,paynext)
        VALUES
        ('SELECT DATE_ADD($theday) INTERVAL 1 YEAR','SELECT DATE_ADD($theday) INTERVAL 11 MONTH')
        ") or die (mysql_error());
Avatar billede erikjacobsen Ekspert
13. maj 2003 - 13:57 #1
mysql_query("INSERT INTO webhotels
        (payetto,paynext)
        VALUES
        (DATE_ADD($theday) INTERVAL 1 YEAR,DATE_ADD($theday) INTERVAL 11 MONTH)
        ") or die (mysql_error());
Avatar billede erikjacobsen Ekspert
13. maj 2003 - 13:58 #2
Evt:

mysql_query("INSERT INTO webhotels
        (payetto,paynext)
        VALUES
        (DATE_ADD('$theday') INTERVAL 1 YEAR,DATE_ADD('$theday') INTERVAL 11 MONTH)
        ") or die (mysql_error());
Avatar billede jakobsen Nybegynder
13. maj 2003 - 14:03 #3
får denne fejl:

You have an error in your SQL syntax near ') INTERVAL 1 YEAR,DATE_ADD(2003-13-05) INTERVAL 11 MONTH) ' at line 4
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:06 #4
mysql_query("INSERT INTO webhotels
        (payetto,paynext)
        VALUES
        (DATE_ADD('$theday', INTERVAL 1 YEAR),DATE_ADD('$theday', INTERVAL 11 MONTH))
        ") or die (mysql_error());
Avatar billede jakobsen Nybegynder
13. maj 2003 - 14:19 #5
att. fsconsult

DATE_ADD bliver blot "null" hvis jeg laver det som dit..
Avatar billede erikjacobsen Ekspert
13. maj 2003 - 14:21 #6
Uden '...' omkring $theday ??
Avatar billede jakobsen Nybegynder
13. maj 2003 - 14:23 #7
her alt koden jeg bruger:

$theday = date("Y-d-m");

mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD($theday) INTERVAL 1 YEAR) ") or die (mysql_error());

men payetto bliver blot "null"
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:24 #8
jeg flyttede blot INTERVAL delen ind i DATE_ADD parentesen da det er syntaksen :-)

Prøv at fjerne ' som erikjacobsen foreslår
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:26 #9
mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD(SYSDATE() INTERVAL 1 YEAR)) ") or die (mysql_error());

(hvis det altså er d.d. + 1 år du ønsker)
Avatar billede jakobsen Nybegynder
13. maj 2003 - 14:28 #10
ok.. det giver:

You have an error in your SQL syntax near 'INTERVAL 1 YEAR)) ' at line 1
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:32 #11
hmm.. der skal selvfølgelig være et , mellem datoen og interval delen:

mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD(SYSDATE(), INTERVAL 1 YEAR)) ") or die (mysql_error());
Avatar billede jakobsen Nybegynder
13. maj 2003 - 14:37 #12
ok.. det virker.. men jeg skal ikke bruge klokken til noget,
hvordan får jeg den fra? sysdata?
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:37 #13
Alternativt prøv:

$theday = date("Y-d-m");

mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD(\"" . $theday . "\", INTERVAL 1 YEAR) ") or die (mysql_error());

(en dato skal som konstant angives i quotes)
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:38 #14
hvis feltet er defineret som DATE og ikke DATETIME burde klokken aldrig blive gemt i databasen
Avatar billede jakobsen Nybegynder
13. maj 2003 - 14:52 #15
mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD(\"" . $theday . "\", INTERVAL 1 YEAR) ") or die (mysql_error());

giver:
You have an error in your SQL syntax near '' at line 1

mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD(SYSDATE(), INTERVAL 1 YEAR)) ") or die (mysql_error());

giver: 2004-05-13 14:52:29

den sidste kan bruges blot man kan undgå tiden...

/sj
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:56 #16
mysql_query("INSERT INTO webhotels (payetto) VALUES (CAST(DATE_ADD(SYSDATE(), INTERVAL 1 YEAR)) AS DATE) ") or die (mysql_error());

(ikke testet)
Avatar billede fsconsult.dk Nybegynder
13. maj 2003 - 14:58 #17
Det andet burde også virke ... hmm..

$theday = date("Y-d-m");
mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD('" . $theday . "', INTERVAL 1 YEAR) ") or die (mysql_error());
Avatar billede jakobsen Nybegynder
13. maj 2003 - 16:00 #18
ingen af de 2 virker :(

den første giver:
You have an error in your SQL syntax near '(DATE_ADD(SYSDATE(), INTERVAL 1 YEAR)) AS DATE) ' at line 1
Avatar billede jakobsen Nybegynder
13. maj 2003 - 16:19 #19
løsningen er:

mysql_query("INSERT INTO webhotels (payetto) VALUES (DATE_ADD(CURDATE(), INTERVAL 1 YEAR)) ") or die (mysql_error());
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester