Frågan 10 apr. 2009 17:03 #1 Vad är det för fel på denna kod?
if ($rad['plus_till'] == '0000-00-00 00:00:00'){
$till = get_date_time(gmtime() + 30*86400);
} else {
$till = "plus_till = $rad[plus_till] + 30*86400";
}
mysql_query("UPDATE users SET class = '1', plus_till = '$till' WHERE username = '$medlem'");
Varje gång jag ska "plussa på" 30 dagar, så nollställs fältet till "0000-00-00 00:00:00". :(
C colione Medlem sedan juni 2001 4 421 inlägg
colione skrev:
använd mysqls date_add istället.
http://www.w3schools.com/SQL/func_date_add.asp
Ok! Men jag förstår inte den funktionen riktigt. :r
L LarsG Medlem sedan dec. 2000 12 464 inlägg update users
set class = 1,
plus_till = plus_till + interval '30' day
where username = '$medlem'
Jag får fortfarande inte till det. :x
Har detta:
if ($rad['plus_till'] == '0000-00-00 00:00:00'){
$datum = date("Y-m-d H:i:s", strtotime("+30 day"));
} else {
$datum = date($rad['plus_till'], strtotime("+30 day"));
}
mysql_query("UPDATE users SET class = '1', plus_till = plus_till + '$datum', WHERE username = '$medlem'");
P Peter S Medlem sedan dec. 2002 5 483 inlägg Om du skriver ut den färdiga SQL-frågan så ser du att den inte ser likadan ut som LarsGs exempel. T.ex. saknas interval .
Peter S skrev:
Om du skriver ut den färdiga SQL-frågan så ser du att den inte ser likadan ut som LarsGs exempel. T.ex. saknas interval .
De exempel jag har sett, använder inte "INTERVAL", utan ADDDATE eller date_add, men jag förstår inte hur det fungerar.
Någon som kan hjälpa mig med detta?
Om fältet "plus_till" har "0000-00-00 00:00:00", ska 30 dagar läggas till från dagens datum.
Om fältet "plus_till" redan har data, ska 30 dagar läggas till (plussas på) från det datumet som redan finns sparat i fältet.
(Koden ska användas till en VIP funktion.)
L LarsG Medlem sedan dec. 2000 12 464 inlägg update users
set class = 1,
plus_till = case when plus_till = '0000-00-00 00:00:00' then
current_date else plus_till end + interval '30' day
where username = '$medlem'
LarsG skrev:
update users
set class = 1,
plus_till = case when plus_till = '0000-00-00 00:00:00' then
current_date else plus_till end + interval '30' day
where username = '$medlem'
Tack!
Datumet stämmer men klockslag sparas inte. :q
@nders Medlem sedan juni 2000 32 969 inlägg Använd current_timestamp istället då.