为什么我的更新表功能不起作用?

时间:2013-02-12 05:08:13

标签: php mysql

我知道我会因为你使用mysql_**而得到你们的支持但是我现在必须这样做,因为我已经远离了这个项目,我不能再回去重新开始了。所以请温柔。

无论如何,我不明白为什么我的更新表不起作用!!

这是代码:

    <?php

$host="localhost"; // Host name
$username="mydetails"; // Mysql username
$password="XXXXXXX"; // Mysql password
$db_name="mydetails"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// get value of id that sent from address bar
$id=$_GET['id'];

// Delete data in mysql from row that has this id
$result = mysql_query ("UPDATE $tbl_name SET balance='$balance' WHERE id='$id'");


// if successfully deleted
if($result){
echo "The user has been banned successfully!";
echo "<BR>";
echo "<a href='suspend_users.php'>Back to main page</a>";
}

else {
echo "ERROR";
}
?>

<?php
// close connection
mysql_close();
?>

如果我删除$balance并将''清空或用文本或数字替换$balance,则会在其中输入余额列,这意味着它可以正常工作并成功连接到数据库没有任何问题。但是当我说balance='$balance'它根本不起作用时。

我的输入字段包含id="balance"name="balance",因此不会遗漏。

有人可以帮助我解决这个问题而不会让我使用mysql_*吗?

谢谢

更新

我的表单代码:

<tr>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['balance']; ?></td>
<td bgcolor="#FFFFFF"><input name="balance" type="text" id="balance" value="<? echo $rows['balance']; ?>" size="15"></td>
<td bgcolor="#FFFFFF"><a href="delete_ac.php?id=<? echo $rows['id']; ?>">Ban and Remove</a></td>
</tr>

4 个答案:

答案 0 :(得分:0)

试试这个

$result = mysql_query ("UPDATE ". $tbl_name ." SET balance='".$balance."' WHERE id='".$id."'");

答案 1 :(得分:0)

使用变量名称无法访问表单的值,它们存储在全局数组$ _GET或$ _POST中(取决于您在表单中使用的方法)。你可以试试这个:

// get value of id that sent from address bar
$id=$_GET['id'];

//get value of balance. i am supposing you have used get method in your form
$balance = $_GET['balance'];

// Delete data in mysql from row that has this id
$result = mysql_query ("UPDATE $tbl_name SET balance='$balance' WHERE id='$id'");

答案 2 :(得分:-1)

只需将$tbl_name放在引号中,例如'$tbl_name'

答案 3 :(得分:-1)

$balance永远不会在您的代码中设置。

尝试添加$balance = $_POST['balance']

或者,如果表单method="get"使用$balance = $_GET['balance']