25. juli 2003 - 23:13Der er
15 kommentarer og 2 løsninger
Flere ens poster - opdater kun den nyeste (timestamp)
Hej.
Min SQL streng :
mysql_query("UPDATE online SET time = now() WHERE IPnr = '$IPnr'") or die(mysql_error());
Problemet er, at der er en masse nøjagtigt ens poster (bortset fra tallet i timestamp). Jeg ønsker, at det KUN er den nyeste post, der bliver updateret.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Duer heller ikke. Man får jo ikke en fejl, bare fordi den ikke indsætter noget (fx. hvis WHERE ikke er opfyldt). Kan dette løses ? Således at der meldes fejl, hvis der intet opdateres ?
"Dog lidt træls, med en hel tabel til sølle et felt :)" Hm, jeg vil mene der skal være hele tre rækker: id (int(nok), primary key, not null, auto_increment), ip (int([nok til IPv6]), not null), antal (int(nok), not null)
... og ellers noget i stil med: if (@mysql_query("UPDATE online SET time = now() WHERE IPnr = xxx")) { # Hurra, det blev indsat } else if (@mysql_query("INSERT ...")) { # Nåda, så kom ip'en da i db'en nu... } else { # Noget er _helt_ galt! }
pis Plejer at holde det meget stringent; at bruge STORE bogstaver til SQL-kommandoer, men det kan jo smutte når man C&P'er for meget :) - now() skulle naturligvis have været NOW() :)
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.