2013-07-22 2 views
-7

Так что теперь, когда я получаю пункты из БД, я хочу, чтобы добавить 5 очков [точек] и сохранить в БД:добавление «5» в INT

function addPoints($email) 
{ 
    $con = mysql_connect("example", "example", "example") ; 
    if (!$con) 
    { 
     die("Can not connected: " . mysql_error()); 
    } 
    mysql_select_db("example",$con); 
    $sql = "SELECT points FROM tablename WHERE email = '$email'"; 
    $myData = mysql_query($sql,$con); 
    while($record = mysql_fetch_array($myData)) 
    { 
     $record['points'];  
    } 
    mysql_close($con); 
} 
+3

** warning ** Ваш код может быть уязвим для атак с использованием SQL-кода! –

+3

Не используйте расширение mysql, используйте PDO или mysqli. И используйте подготовленные заявления. –

+0

Если значение электронной почты вводится пользователем, оно * * уязвимо для SQLi. –

ответ

1

Вы можете сделать то же самое с UPDATE запроса

UPDATE tablename SET points = points + 5 WHERE email = 'your_email_here' 
1

Try:

$newPoints = $record['points'] + 5; 
$sql = "UPDATE tablename SET points = '$newPoints' WHERE email = '$email'"; 
mysql_query($sql,$con); 
+0

Вам также нужно посмотреть: http://php.net/manual/en/function.mysql-real-escape-string.php –

0

Вы можете изменить вас во время цикла для достижения этой цели.

while($record = mysql_fetch_array($myData)){ 
    $points = $record['points'];  
$query = "update tablename set points=". $points +5 ." WHERE email = '$email'"; 
mysql_query($query, $con);  
} 
Смежные вопросы