Adding to an int in a table

A

Anonymous

Guest
Code:
$query4 = 'SELECT * FROM members';
$result = MySQL_query($query4);

While( $rows = MySQL_fetch_array($result) ) {
$wins = $rows['wins'];
$losses = $rows['losses'];
$ob = $rows['ob'];

/* Updating Info */
$query1 = 'UPDATE members SET wins = {$wins} + 1 WHERE name = ' . $_POST['winner']; 
$query2 = 'UPDATE members SET losses = {$losses} + 1 WHERE name = ' . $_POST['loser'];
$query3 = 'UPDATE members SET ob = {$ob} + 1 WHERE name = ' . $_POST['observer'];
}

mysql_query($query1);
mysql_query($query2);
mysql_query($query3);

No, errors here. But it just won't execute. By execute I mean add the ints.
 
im not sure, but for my query strings i try to use dbl quotes (") so for the values, (i.e. variable='$variable') it doesnt end the string.
 
HaVoC said:
Code:
$query1 = 'UPDATE members SET wins = {$wins} + 1 WHERE name = ' . $_POST['winner'];

When you use single quotes, variables are never evaluated, even when you use curly braces. Next time you have a problem with MySQL just echo the query (echo $query1;), it makes problems like this painfully obvious. Also, string types in MySQL queries (e.g. TEXT, BLOB, etc.) must have quotation marks around them:

Code:
$query1 = 'UPDATE members SET wins = ' . $wins . ' + 1 WHERE name = \'' . $_POST['winner'] . '\'';
 
Back
Top