creAtiive Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 (endret) Det ble litt rart; $innBank = $hennt['bank'] // Henter ut banken's pengesum ?> <?php if(isset($_POST['setinnpen'])) { $inn1 = $hent['peng']; // Henter ut penger man allerede har på hånd $inn2 = $_POST['settinna']; $inn3 = $inn1 - $inn2; $inn4 = $inn3; $inn5 = $innBank; $inn6 = $inn4 - $inn5; $inn7 = $inn6; $inn8 = mysql_query("UPDATE brukere SET bank = '$inn7', peng = '$inn4' WHERE id = '$_SESSION[id]'"); echo "hehe"; } ?> Problemet er at jeg får samme sum i banken som jeg får på hånd. Men det skal jo ikke være slik. Ser dere hva som er feil? Endret 21. juli 2008 av creAtiive Lenke til kommentar
Martin A. Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Skjær meg laus! Er ikke rart det blir innviklet når du holder på på den måten der. Jeg går ut i fra at dette er en del av en funksjon som gjør at brukerne kan sette penger inn i banken? Hvorfor i alle dager minker du bankens beholdning når du da setter inn penger? Du kan gjør alt der skrotet der på seks linjer, tre om man dropper definering av mer forklarende variabler. Noe du kanskje bør lære deg. $bank = $hennt['bank']; $bruker = $hent['peng']; $settinn = is_numeric( $_POST['settinna'] ) ? intval( $_POST['settinna'] ) : die( "Feil" ); $new_bruker = $bruker - $settinn; $new_bank = $bank + $settinn; mysql_query( "UPDATE brukere SET bank = '$new_bank', peng = '$new_bruker' WHERE id = {$_SESSION['id']}" ); Slik vil din kode være i praksis, om jeg forsto den riktig. $innbank = 300000; $inn1 = 10000; $inn2 = 5000; $inn3 = 10000 - 5000; // = 5000; $inn4 = 5000; $inn5 = 300000; $inn6 = 5000 - 300000; // = -295000 $inn7 = -295000; $inn8 = mysql_query("UPDATE brukere SET bank = '-295000', peng = '5000' WHERE id = '$_SESSION[id]'"); Ikke rart det der ikke stemmer, da ingen av tallene du kommer frem til henger på grep. Lenke til kommentar
Harald B Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Håper ikke den koden skal bli del av en virkelig bank Men det skal den vel selvfølgelig ikke Lenke til kommentar
creAtiive Skrevet 21. juli 2008 Forfatter Del Skrevet 21. juli 2008 Skjær meg laus! Er ikke rart det blir innviklet når du holder på på den måten der. Jeg går ut i fra at dette er en del av en funksjon som gjør at brukerne kan sette penger inn i banken? Hvorfor i alle dager minker du bankens beholdning når du da setter inn penger? Du kan gjør alt der skrotet der på seks linjer, tre om man dropper definering av mer forklarende variabler. Noe du kanskje bør lære deg. $bank = $hennt['bank']; $bruker = $hent['peng']; $settinn = is_numeric( $_POST['settinna'] ) ? intval( $_POST['settinna'] ) : die( "Feil" ); $new_bruker = $bruker - $settinn; $new_bank = $bank + $settinn; mysql_query( "UPDATE brukere SET bank = '$new_bank', peng = '$new_bruker' WHERE id = {$_SESSION['id']}" ); Takk for hjelpen <?php /* sett inn penger */ if(array_key_exists('setinnpen', $_POST)) { $bank2 = $hent['bank']; $bruker2 = $hent['peng']; $settinn2 = quote_smart($_POST['settinna']); if(!is_numeric($settinn2)) { echo '<font style="color:#FF0000; font-size:11px; font-family:Verdana, Arial, Helvetica, sans-serif;"><strong>Du skrev inn et ugyldig tall!</strong></font>'; } else { if($settinn2 > $bruker2) { echo '<font style="color:#FF0000; font-size:11px; font-family:Verdana, Arial, Helvetica, sans-serif;"><strong>Du har ikke så mye penger!</strong></font>'; } else { $new_bruker = $bruker2 - $settinn2; $new_bank = $bank2 + $settinn2; mysql_query( "UPDATE brukere SET bank = '$new_bank', peng = '$new_bruker' WHERE id = {$_SESSION['id']}" ); echo ('<font style="color:#FFFFFF; font-size:11px; font-family:Arial, Helvetica, sans-serif;">Du satte inn <strong>' . number_format($settinn2) . '</strong> kr, på din bankkonto.</font>'); } } } ?> Lenke til kommentar
loathsome Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 For noen elendige variabelnavn. "$hennt"? Lenke til kommentar
Harald B Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Det er vel en stund siden det var anbefalt å benytte font-taggen ... Lenke til kommentar
loathsome Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Og i tillegg i en stor mølje med kode, hvor ordet "struktur" er totalt ukjent. Lenke til kommentar
Martin A. Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 (endret) $settinn2 = quote_smart($_POST['settinna']); if(!is_numeric($settinn2)) { Den kunne med fordel vært: $settinn2 = intval( $_POST['settinna'] ); if( $settinn2 < 1 ) { POST har vel heller ingen grenser på lengen på nøklene, så beskriv de istede for slik krypisk skrot som "settinna", "setinnpen", etc. Samme gjelder SQL. penger og bankbeholdning fremfor peng og bank. Endret 21. juli 2008 av m4rtin Lenke til kommentar
loathsome Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Strengt talt skal vel en holde radnavn, nøkler og variabelnavn på engelsk - god programmeringsskikk! Lenke til kommentar
Martin A. Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 Aller helst så skal man vel det. Selv om jeg sjeldent gjør det når jeg lager noe som ingen andre skal stikke nesa si borti. 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å