WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Plus o Minus i Mysql (https://www.wn.se/forum/showthread.php?t=33312)

youheardit 2008-11-16 11:37

jag håller på och bygger ett litet räknings system, men kan inte hitta hur man får plus och minus i mysql <_<

jag kör annars UPDATE i mysql, fast då får man ju räkna ut själv hur mycket det blir i slutet.


någon som har ett förslag på cod eller tillägg?? snälla hjälp! :)

kör detta förslag för tillfället:
Kod:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }
mysql_select_db("my_db", $con);

mysql_query("UPDATE Persons SET Age = '36'
WHERE FirstName = 'Peter' AND LastName = 'Griffin'");
mysql_close($con);
?>


WizKid 2008-11-16 12:07

plus och minus av vad? Om kolmnen är en int så kan du köra field = field + 17

youheardit 2008-11-16 12:10

meningen med systemet är att medlemmar på sidan får poäng för saker som ddem gör på sidan, och då vill jag har typ så när de gör en sak så ska typ 10poäng gå in i databasen till den användaren.

alltså: plus elelr minus ur ett tal i databasen!

allstars 2008-11-16 12:15

Citat:

jag kör annars UPDATE i mysql, fast då får man ju räkna ut själv hur mycket det blir i slutet.
I slutet vaddå?

Som sagt kan du köra additionen i sql-satsen
Kod:

<?php
$num_points = 10; //hur många poäng användaren får för just den åtgärden han gjort.
var sql_string="UPDATE TABLE SET (points=points+$num_points) WHERE userid=$user_id;"

//Kanske får du köra en switch här i en mer global funktion, eller gör en separat funktion
add_points_to_user($user_id,100);


?>

Vill du subtrahera ändrar du bara variabeln till ett negativt tal:
$num_points = -10;

youheardit 2008-11-16 12:40

hur ska jag lägga upp det: såhär testade jag men inget hände:

Kod:

<?php
$con = mysql_connect("localhost","username","password");
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }
mysql_select_db("databasen", $con);
$num_points = 10;//hur många poäng användaren får för just den åtgärden han gjort.
mysql_query ("UPDATE TABLE SET (credits=credits+$num_points) WHERE user=$userID;")
 

?>

detta är ju inte orginalkoden jag använder. jag använder ju med rätt databas uppgifter

WizKid 2008-11-16 12:53

Hur ser sql-queryn ut som du kör då?

allstars 2008-11-16 13:02

du måste självklart ändra sqlen så den passar ditt fall. Ändra TABLE till det tabellnamn du skall ändra på och fältet points till det namn "poängfältet" har (måste vara en form av int) samt userid-fältnamn

hnn 2008-11-16 13:05

Byt ut
mysql_query ("UPDATE TABLE SET (credits=credits+$num_points) WHERE user=$userID;")

mot

mysql_query ("UPDATE ##TABELLENS NAMN## SET (credits=credits+$num_points) WHERE user=$userID;")

youheardit 2008-11-16 13:51

e det fortfarande något fel?? för det funker inte :huh:


Kod:

<?php
$con = mysql_connect("localhost","användarnamn","lösen");
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }
mysql_select_db("databasnamn", $con);
$num_points = 10;//hur många poäng användaren får för just den åtgärden han gjort.
mysql_query ("UPDATE credits SET (credits=credits+10) WHERE user=$userid;")
 

?>


allstars 2008-11-16 14:16

heter både tabellen och fältet "credits"?


Alla tider är GMT +2. Klockan är nu 02:09.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson