1

好的,所以我正在制作一款游戏,并希望它是用户有大量图像可供选择的图像。我在数据库中有一个列 user_image ,默认值为 0,如果为 0,则为图像。它是 0-3,每个数字都是一个单独的图像。像这样..

<?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,而不是noobish,但它不允许我发布表格和表格?

4

1 回答 1

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 = sprintf('UPDATE users SET user_image=%d WHERE id=%d', $_POST['new_user_image'], $id);

如果您不确定您的 SQL,那么至少打印查询的文本echo $sql并检查以确保它直接针对数据库运行。您可以更轻松地解决任何特定于 SQL 的问题。

于 2012-12-03T02:11:08.493 回答