Sonymann Skrevet 12. mai 2004 Skrevet 12. mai 2004 Finnes det en måte, med PHP, å kreve at en verdi er et heltall før det legges inn i database?
sven-o Skrevet 12. mai 2004 Skrevet 12. mai 2004 Du kan f.eks bruke fuksjonene floor(), ceil() eller round(). (?)
???????? Skrevet 12. mai 2004 Skrevet 12. mai 2004 Da endrer du tallet. Du kan f.eks. teste tallet med en av de funksjonene sven-o nevner, f.eks.: if($tall === floor($tall)){ echo "Tallet er et heltall!"; }
Sonymann Skrevet 13. mai 2004 Forfatter Skrevet 13. mai 2004 (endret) Jeg har nå gjort som ????????? sa, men har fremdeles problemer. Uansett hva jeg skriver får jeg "$timer er en ugyldig verdi". <? $brukernavn=$_POST["brukernavn"]; $timer=$_POST["timer"]; if($timer = round($timer)){ $connection = @mysql_connect(localhost, BRUKER, PWD) or die("Umulig å få kontakt med database"); mysql_select_db(DATABASE); @mysql_query("UPDATE brukere SET timer=(timer +$timer) WHERE brukernavn = $brukernavn"); @mysql_query("UPDATE brukere SET turer=(turer +1) WHERE brukernavn = $brukernavn"); print("Turen din er nå logget"); } else { print("$timer er en ugyldig verdi."); } ?> Endret 13. mai 2004 av Sonymann
???????? Skrevet 13. mai 2004 Skrevet 13. mai 2004 = gir ny verdi, så når du sjekker if($timer = round($timer)){ så sjekker du om du kan gi timer den verdien. Bruk == eller ===
Sonymann Skrevet 13. mai 2004 Forfatter Skrevet 13. mai 2004 OK. Nå gikk det i boks. Men problem nr. 2 er at ingenting blir lagt inn i databasen! Hvordan kan jeg få gjort noe med det problemet? Jeg er sikker på at begge variablene er med, det har jeg testet.
???????? Skrevet 13. mai 2004 Skrevet 13. mai 2004 Ta bort @så får du kanskje opp en feilmelding Legg også til mysql_error();
Sonymann Skrevet 13. mai 2004 Forfatter Skrevet 13. mai 2004 Feilmelding: Unknown column 'sebross' in 'where clause' Skjønner ingenting! :
???????? Skrevet 13. mai 2004 Skrevet 13. mai 2004 Del opp spørringene på denne måten: $query = "UPDATE... $result = mysql_query($query); Så echo'er du $query
sven-o Skrevet 13. mai 2004 Skrevet 13. mai 2004 (endret) Regner med at brukernavn er en varchar el., noe som betyr at du må ha enkeltfnutter i where klausulen din. Slik: @mysql_query("UPDATE brukere SET timer=(timer +$timer) WHERE brukernavn = '$brukernavn'"); Endret 13. mai 2004 av sven-o
Sonymann Skrevet 13. mai 2004 Forfatter Skrevet 13. mai 2004 Vel, det ser ut som om problemet ligger i handlingene. $query="UPDATE brukere SET timer='3', turer='4' WHERE brukernavn = '$brukernavn'"; Dette fungerer. Da legges 3 og 4 inn. Dette fungerer ikke, og slik er det det bør være: $query="UPDATE brukere SET timer='timer +$timer', turer='turer +1' WHERE brukernavn = '$brukernavn'";
sven-o Skrevet 13. mai 2004 Skrevet 13. mai 2004 Vel, det ser ut som om problemet ligger i handlingene. $query="UPDATE brukere SET timer='3', turer='4' WHERE brukernavn = '$brukernavn'"; Dette fungerer. Da legges 3 og 4 inn. Dette fungerer ikke, og slik er det det bør være: $query="UPDATE brukere SET timer='timer +$timer', turer='turer +1' WHERE brukernavn = '$brukernavn'"; Når du bruker int i en database skal du ikke benytte enkeltfnutter. Riktige queries blir slik: $query="UPDATE brukere SET timer=3, turer=4 WHERE brukernavn = '$brukernavn'"; //Her er det dog vagfritt(ved tilordning) $query="UPDATE brukere SET timer=timer+$timer, turer=turer+1 WHERE brukernavn = '$brukernavn'";
ilpostino Skrevet 14. mai 2004 Skrevet 14. mai 2004 Bruk == eller === hva er forskjellen på == og === ?
???????? Skrevet 14. mai 2004 Skrevet 14. mai 2004 (endret) == er lik === er identisk EDIT: 1 == 01 //korrekt 1 === 01 //feil Endret 14. mai 2004 av ????????
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å