![]() |
Hej,
Jag har fått en del strul med ett script som som försöker få att fungera som jag vill, inte det lättaste när man inte är så bra på att scripta.. Detta är vad jag har just nu: Kod:
$query="SELECT expire FROM min_tabell WHERE user = '$infos[1]'"; Och jag vet att mina kodsnuttar säkert ser för j**liga ut, men det är därför jag vänder mig hit för assistans. Någon som kan komma med förslag är mycket uppskattat. Tack på förhand PaLL3 |
Mysqli och objektorientering är att föredra, men det kan du göra nästa gång.
Du kan använda villkor i en query om du vill. men i ditt fall så är det ännu enklare. Du vill lägga till det högsta värdet av expire+31 dagar och nu+31 dagar. Då använder du MAX(värde 1,värde2) Vad jag inte förstår är om du vill updatera en enskild user i taget eller om det är ett led i en updatering av en större grupp. Om det bara är en i taget så räcker det med en enda fråga. Om du vill loopa dig igenom en trave användare så går det också, även om man kan använda subquerys för att kringgå förbudet mot att söka och uppdatera samtidigt i samma tabell. Sen bör du använda date_add. Så här blir din fråga: "Update min_tabell SET expire=max( date_add(expire, interval 31 day) , date_add(now(),interval 31 day)) WHERE user = '$infos[1]' " eller " interval 1 month " om du vill lägga till exakt en månad. mvh (edit stavfel) |
Tack för ditt snabba svar, elpris..
Jag ska bara uppdatera en användare i taget. Men det verkar som om den queryn inte funkar. Inget uppdateras.. =/ Jag vill bara ha expire uppdaterat med "expire = expire + INTERVAL 1 MONTH" om datumen som redan finns i expire är mer än nu. I annat fall ska den nuvarande expire bara uppdateras med dagens datum "+ INTERVAL 1 MONTH". *EDIT* har fått den att köras pga att jag glömde en sista ')'. doh.. Men nu får jag; "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' date_add(now(), interval 31 day)) WHERE user = 'användare'' at line 1" Mvh PaLL3 |
Mitt fel. pröva med GREATEST istället för MAX
|
Hade du varit här nu skulle jag gett dig en puss....
Så nu hade du tur ;) MVH PaLL3 |
Alla tider är GMT +2. Klockan är nu 06:10. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson