31. maj 2005 - 13:32
Der er
19 kommentarer og 1 løsning
Trække 100 kroner fra et andet tal
Hey.. Jeg sidder med et system her, som jeg ikke kan få til at virke :s $minus = $roew[kroner]-100; $roew[kroner] er 563.74333333333333 Men hver gang jeg gør det der, så ender det med at $roew[kroner] bliver til 101 kroner... Hvad skal jeg gøre for det virker?
Annonceindlæg fra Pax8
$roew[kroner] = $roew[kroner]-100;
Så kommer resultatet til at se sådan ud: -101.26855555567
Brug nu gerne ' eller " !!! echo $roew["kroner"] ." fra DB. Minus 100 bliver det til ". ($roew["kroner"]-100);
Og hvilket felttype er "kroner" i DB'en? Det skal være int
altså $tal = ". ($roew["kroner"]-100); ??
$tal = $roew["kroner"]-100; Efter det bliver resultatet: 101 Og hvorfor skal jeg bruge int? så har den problemer med at finde decimal tallene????
Du kan jo prøve: echo $roew["kroner"] ." - ". intval($roew["kroner"]); Hvis det ikke er "et tal" i DB'en, får du jo en streng ud. Husker lige hvordan med decimaler og DB, men vil da lige prøve! :O)
$tal = $roew["kroner"] ." - ". intval($roew["kroner"]); mysql_query("UPDATE brugersystem SET kroner = '$tal' WHERE Brugernavn = '$_GET[bruger]'"); Det skal være så han får 463.74333333333333 kr istedet for de 563.74333333333333 kr
Hvis det bare er tabellen som skal opdateres, så er løsningen: mysql_query("UPDATE brugersystem SET kroner = kroner-100 WHERE Brugernavn = '$_GET[bruger]'");
Hvis vi antager at felttypen er tal mysql_query("UPDATE brugersystem SET kroner = kroner-100 WHERE Brugernavn = '$_GET[bruger]'");
Nu prøvede jeg selv lige at lege lidt: CREATE TABLE `tal` ( `id` tinyint(4) NOT NULL auto_increment, `kroner` decimal(10,6) NOT NULL default '0.000000', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; # # Data dump for tabellen `tal` # INSERT INTO `tal` VALUES (1, '563.743333'); $mytal = mysql_query("SELECT kroner FROM tal WHERE id = 1"); echo (mysql_result($mytal, 0)-100); feltet i DB'en SKAL være decimal! Ellers vil du aldrig kunne lave udregninger
Ja, ok, der er andre typer "tal" for et felt! Men såvidt jeg kan forstå på linket herover, er det netop DECIMAL som skal bruges her
Nu ændre tallet sig fra 563 til 62...der skal stå 463 :)
gjorde sådan her: mysql_query("UPDATE brugersystem SET kroner = '$roew[kroner]-100' WHERE Brugernavn = '$_GET[bruger]'"); har også prøvet med: mysql_query("UPDATE brugersystem SET kroner = 'kroner-100' WHERE Brugernavn = '$_GET[bruger]'");
Prøv at vise et dump af stukturen for din tabel! Eller, det er stadig ikke et "talfelt"!
Eller nemmere, prøv at lave en ny tabel som i mit eks. og prøv så igen
Der må skam heller ikke være pinger rundt om 'kroner-100' i: mysql_query("UPDATE brugersystem SET kroner = 'kroner-100' WHERE Brugernavn = '$_GET[bruger]'");
Det var mig der lavede en MEGET dum fejl :P den tog mine kroner - 100 og gemte på hans bruger fordi jeg lavede en WHERE Brugernavn = '$_SESSION[Brugernavn]' istedet for $_GET[bruger] hehe. Bare læg et svar :)
16. juni 2005 - 20:29
#20
lukker
Vi tilbyder markedets bedste kurser inden for webudvikling