0

好的,所以我游戏上的用户有一个页面。其他用户可以在页面上发表评论。我制作了一个脚本,用户可以将其设置为人们可以在他们的墙上发表评论或者它是否被禁用的地方。如果我手动更改数据库,它可以工作,但我用单选按钮设置它并且它没有更新。这是表格。

<form action="settings" method="post">
Comments: <br />
Enabled:  
<input type="radio" name="change_wall" id="change_wall" value="no" checked="checked" />
<br />
Disabled: 
<input type="radio" name="change_wall" id="change_wall" value="yes" />
<br />
<input type="submit" value="Change" />
</form>

下面是数据库更新的SQL。

    <?php
    if ( isset ( $_POST['change_wall'] ) )
        {
        $change_wall = mysql_real_escape_string($_POST['change_wall']); 
        if ($cash >= 5000) {
        $sql = "UPDATE users SET disable_wall='".$change_wall."' , cash=(cash - 5000) WHERE id='".$id."'";
        $res = mysql_query($sql);
            echo  
            '<table width="800" align="center" class="SettingsTable">
              <tr>
                <td>You sucessfully changed your comment settings!</td>
              </tr>
            </table>
            <br />';
        }
        else  {
            echo 
            '<table width="800" align="center" class="SettingsTable">
              <tr>
                <td>You don\'t have enough cash to change your comment settings!</td>
              </tr>
            </table>
            <br />'; 
        }
        }
?> 

这是用户页面的编码,用于显示他们的评论或如果它被禁用。

  <?php 
      if ($disable_wall = 0) { 
        include 'users_wall.php';
      }
      elseif ($disable_wall = 1) {
          echo 
          '<table width="800" align="center" class="DisabledWall">
          <tr>
            <td>' . $userp['name'] . '\'s ' . 'Comments Disabled!</td>
          </tr>
        </table>';
      }
    ?>
4

2 回答 2

1

因为您需要一个布尔(是/否)响应,所以您可以简单地将它们设置为 0 或 1,以确保安全。
要回答您的问题,请执行

 
  $sql = "UPDATE users SET disable_wall='1' , cash=(cash - 5000);
 

并禁用墙

 
  $sql = "UPDATE users SET disable_wall='0' , cash=(cash - 5000);
 

更好的是,为它使用一个布尔列。

此外,确保$id是一个有效值,并且当前在表中至少有一行。

更重要的是,使用 PDO 或 MySQLi;MySQL 扩展已被弃用。

希望这可以帮助。

于 2012-12-13T23:11:25.550 回答
1

首先,确保执行了 sql 查询 - $cash 确实 >= 5000 并且 $id 变量包含正确的值

那么,表字段'disable_wall'有什么类型呢?varchar 还是枚举?不是整数?

如果上面的说明没有帮助,请在脚本的最后一行之后输入:

die("error: ".mysql_error());

提交表格并观察,更新表格时发生了什么错误

于 2012-12-13T23:09:11.160 回答