【发布时间】:2016-04-14 11:26:14
【问题描述】:
我对 php 比较陌生。在下面的代码中,我试图更新用户的“dietID”(他们当前的饮食,他们在注册时选择的饮食),以便更改他们存储在用户数据库中的dietID。但是,按下“更改”提交按钮后,什么也没有发生,也没有任何更新。有人能理解为什么吗?
表单处理代码:
<?php
if(trim($_POST['submit']) == "Change") {
require_once("connect.php");
if (!$db_server) {
die("Unable to connect to MySQL: " . mysqli_connect_error($db_server));
} else {
mysqli_select_db($db_server, $db_database) or die("<h1>Couldn't find db</h1>");
//UPDATE records of users table
$query="UPDATE users SET dietID=".$dietopt." WHERE ID= $sess_userID";
mysqli_query($db_server, $query) or die("Update failed" . mysqli_error($db_server));
}
require_once("db_close.php");
} else {
$message= "Your diet has been updated";
}
?>
表格:
Would you like to change what your current diet is? Please select one
<br>
<form action="account.php" method="post">
<td><input type="radio" name="dietopt" value="Meat-eater"/>Meat-eater</td>
<tr>
<td><input type="radio" name="dietopt" value="Vegetarian"/>Vegetarian</td></tr>
<tr>
<td><input type="radio" name="dietopt" value="Vegan"/>Vegan</td></tr>
<br>
<input type="submit" name="Change" value="Change">
<br>
</form>
以及在注册页面上创建的会话变量(不是任何格式,从注册页面整个代码的sn-ps复制粘贴):
$dietopt = $row['dietID'];
$_SESSION['diet'] = $dietopt;
$dietopt= trim($_POST['dietopt']);
【问题讨论】:
-
您的提交按钮的名称是“更改”,因此您必须访问
$_POST['Change'] -
好吧,我改变了,然后得到这个错误:更新失败你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“WHERE ID= 34”附近使用正确的语法
-
好吧,如果我不得不猜测,
$dietopt有问题。你在哪里设置值? -
也许 $dietopt 是空的。
-
尝试
$query="UPDATE users SET dietID=".$_SESSION['diet']." WHERE ID= $sess_userID"而不是你的$queryvar;
标签: php mysql database session