PS_CS4 Skrevet 21. januar 2009 Del Skrevet 21. januar 2009 (endret) Hei, sliter med å plusse variabler. $rank = raden rank i databasen, varchar. Koden: $ny_s = 0.040; $rank = str_replace(',', '.', $rank); $ny_rank = (int)$rank + (int)$ny_s; $sm = $dbh -> prepare("UPDATE brukere SET rank = WHERE id =?"); $stmt -> bind_param("ds", $ny_rank , $_SESSION['id']); $stmt -> execute(); Det fungerer ikke å plusse f.eks 73.50($rank) + 0.040($ny_s). Da beveger ikke 73.50 seg noe. Har noen en løsning på dette? Endret 21. januar 2009 av PS_CS4 Lenke til kommentar
Jonas Skrevet 21. januar 2009 Del Skrevet 21. januar 2009 For det første så caster til flyttallene dine til INT og for det andre så har du glemt et spørsmålstegn i spørringen din. Lenke til kommentar
PS_CS4 Skrevet 21. januar 2009 Forfatter Del Skrevet 21. januar 2009 For det første så caster til flyttallene dine til INT og for det andre så har du glemt et spørsmålstegn i spørringen din. Takk for svar. Men det fungerte desverre ikke, fortsatt samme problem $ny_s = 0.040; $rank = str_replace(',', '.', $rank); $ny_rank = $rank + $ny_s; $sm = $dbh -> prepare("UPDATE brukere SET rank = ? WHERE id =?"); $stmt -> bind_param("ds", $ny_rank , $_SESSION['id']); $stmt -> execute(); Lenke til kommentar
Edorph Skrevet 21. januar 2009 Del Skrevet 21. januar 2009 Er du sikker på at det er adderinga som ikke funker? Jeg kan ikke se noe galt med den. Har du prøvd å skrive ut $ny_rank etter linja hvor du legger sammen $ny_s og $rank? Kan det hende at SQL-spørringa feiler, og at det er derfor rank ikke blir oppdater? Lenke til kommentar
Jonas Skrevet 21. januar 2009 Del Skrevet 21. januar 2009 Hva betyr det at koden «ikke fungerer»? (Aner desverre ikke hva det vil si at en verdi ikke beveger seg) Jeg kan åpenbart ikke sitte å debugge koden, da den ikke kjører korrekt uten en hel haug med andre ting. Du må derfor legge med litt mer informasjon, noe du like godt kan gjøre til en vane å gjøre fra begynnelsen av. Kjør en var_dump() på samtlige variabler på det punktet hvor scriptet feiler og post eventuelle MySQL-feilmeldinger. Lenke til kommentar
OIS Skrevet 21. januar 2009 Del Skrevet 21. januar 2009 Funker fint det der. Tror du har problem et annet sted. Se ka $rank er først, og ka $_SESSION['id'] er, og kordan sql feltet rank er satt opp. $rank = '73,50'; $ny_s = 0.040; $rank = str_replace(',', '.', $rank); $ny_rank = $rank + $ny_s; echo $ny_rank, "\n"; 73.54 Lenke til kommentar
PS_CS4 Skrevet 21. januar 2009 Forfatter Del Skrevet 21. januar 2009 Takk for svar, men fant ut av det selv! Måtte angi: $rank = str_replace(',', '.', $rank); under $rank. Altså, det fungerer ikke å plusse med komma(,), kun med punktum(.). Lenke til kommentar
Edorph Skrevet 21. januar 2009 Del Skrevet 21. januar 2009 Hmm, det hadde du jo allerede gjort i koden du viste her? 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å