2012-12-03 103 views
1

好吧,我正在制作一款游戏,并希望当用户有大量图像可以从中选择图片时。我在数据库中有一列是user_image,它的默认值是0,如果它是0,它是一个图像。它是0-3,每个数字都是一个单独的图像。像这样..带有单选按钮的Mysql更新数据库

<?php 
if ($userp['user_image'] = 0) 
{ 
    echo 
    '<img src="../achievements/Silver-Bank.png" width="60" height="60" title="Change Image"">'; 
} 
elseif ($userp['user_image'] = 1 ) 
{ 
    echo 
    '<img src="../achievements/Silver-Missions.png" width="60" height="60" title="Change Image"">'; 
} 
elseif ($userp['user_image'] = 2) 
{ 
    echo 
    '<img src="../achievements/Silver-Level.png" width="60" height="60" title="Change Image"">'; 
} 
elseif ($userp['user_image'] = 3) 
{ 
    echo 
    '<img src="../achievements/Diamond-Bank.png" width="60" height="60" title="Change Image"">'; 
} 
?> 

这就是显示用户图像的地方。我为用户做了一个页面,用单选按钮选择图像。这里是用PHP来更新数据库,我似乎无法得到它的工作。

<?php 
if (isset ($_POST['new_user_image'])) 
{ 
    $sql = "UPDATE users SET user_image=(new_user_image) WHERE id='".$id."'"; 
    $res = mysql_query($sql); 
    if (mysql_affected_rows($connect) == 1) { 
     echo 'User image sucessfully changed!'; 
    } 
    else 
{ 
} 
} 
?>  

这就是它的PHP,并不是不好意思,但它不让我张贴表和表格?

+0

我知道PHP是正确的,很确定它是。我认为这与表格有关。我在不同的TD上有提交按钮,我认为它会影响它。 –

+0

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护,[弃用过程](http://j.mp/Rj2iVR)已经开始。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 –

回答

0
  1. 您需要在运行mysql_query后检查数据库错误;是这样的:不推荐

    if (mysql_errno()) { die(mysql_error()); }

  2. 使用在所有mysql_功能 - PHP手册中甚至有一个大红色的消息告诉你不使用它们。改用mysqli或pdo扩展名。

  3. 你的SQL语句是不是真的有效的SQL

SET user_image=(new_user_image)

这绝不表示要存储在该列中的变量的结果。你需要做的是这样的:如果您不确定您的SQL

$sql = sprintf('UPDATE users SET user_image=%d WHERE id=%d', $_POST['new_user_image'], $id); 

,那么至少是打印查询的文本与echo $sql和检查,以确保它直接运行对数据库。您可以更轻松地获取任何SQL特定的问题。

+0

嗯,我把这个添加到查询中.. –

+0

$ new_user_image = $ _POST ['new_user_image']; –