Rinox Skrevet 6. januar 2009 Del Skrevet 6. januar 2009 (endret) Hei! Jeg har skrevet dette lille scriptet som skal finne ut hvor lang tid det er siden sist mysql-feltet ble oppdatert og dermed oppdatere det med en gitt tid (f.eks. time() - 15 som altså blir tiden for 15 sekunder siden.)... Her er scriptet: // INSERT NEW POINTS TO THE USER EVERY HOUR $update_time_space = 1; $point_increasement = 5; if (time() > ($user['points_updated'] + $update_time_space)) { $time_past = time() - $user['points_updated']; $number_to_round = $time_past / $update_time_space; $round = (int)($number-0.5); $new_points = $round * $point_increasement; mysql_query("UPDATE users SET points = '" . $user['points'] + $new_points . "', points_updated = '" . $user['points_updated'] + ($round * $update_time_space) . "' WHERE user_id = '" . $user['user_id'] . "'"); } if (!isset($user['points_updated']) or $user['points_updated'] = '' or $user['points_updated'] = '0') { mysql_query("INSERT INTO users (points, points_updated) VALUES ('" . $new_points . "', '" . $user['points_updated'] + ($round * $update_time_space) . "') WHERE user_id = '" . $user['user_id'] . "'") or die(mysql_error()); } Problemet er at ingenting blir lagt til i tabellen. MySQL-feltet heter points_updated og er av typen TIMESTAMP, men jeg lurer på om det kanskje bør endres... Er det noen som vet hva som kan være galt? Endret 6. januar 2009 av Rinox Lenke til kommentar
Epower Skrevet 6. januar 2009 Del Skrevet 6. januar 2009 $number_to_round = $time_past / $update_time_space; $round = (int)($number-0.5); Sikker på at det ikke skulle være $number_to_round = $time_past / $update_time_space; $round = (int)($number_to_round-0.5); Lenke til kommentar
Rinox Skrevet 6. januar 2009 Forfatter Del Skrevet 6. januar 2009 (endret) Takk, det var visst en liten slurvefeil, men da jeg fikset den fikk jeg i alle fall opp en mysql error: 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 '1230433819')' at line 1 Tallet 1230433819 er verdien som ble lagt inn i følgende spørring: mysql_query("INSERT INTO users (points, points_updated) VALUES ('" . $new_points . "', '" . $user['points_updated'] + ($round * $update_time_space) . "')") or die(mysql_error()); Skjønner ikke hva som kan være galtmed spørringen.. Endret 6. januar 2009 av Rinox Lenke til kommentar
AlecTBM Skrevet 7. januar 2009 Del Skrevet 7. januar 2009 (endret) unnskyld, men er det bare jeg som reagerer på at timestampen der er fra Sun, 28 Dec 2008? Kanskje stille klokka Men for å gå litt ontopic, sikker på at det er den spørringen? skriv litt før mysql_error() som sier hvilken spørring det er. også er det en syntax feil, gi meg et par min så skal jeg sjekke det Prøvd å legge utregningene ut av spørringen? Endret 7. januar 2009 av AlecTBM Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå