creAtiive Skrevet 21. juli 2008 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
Martin A. Skrevet 21. juli 2008 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.
Harald B Skrevet 21. juli 2008 Skrevet 21. juli 2008 Håper ikke den koden skal bli del av en virkelig bank Men det skal den vel selvfølgelig ikke
creAtiive Skrevet 21. juli 2008 Forfatter 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>'); } } } ?>
Harald B Skrevet 21. juli 2008 Skrevet 21. juli 2008 Det er vel en stund siden det var anbefalt å benytte font-taggen ...
loathsome Skrevet 21. juli 2008 Skrevet 21. juli 2008 Og i tillegg i en stor mølje med kode, hvor ordet "struktur" er totalt ukjent.
Martin A. Skrevet 21. juli 2008 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
loathsome Skrevet 21. juli 2008 Skrevet 21. juli 2008 Strengt talt skal vel en holde radnavn, nøkler og variabelnavn på engelsk - god programmeringsskikk!
Martin A. Skrevet 21. juli 2008 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.
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å