PHP/MYSQL:当我在上一次MYSQL\u查询的WHERE条件中使用变量时,数据库将清空

PHP/MYSQL:当我在上一次MYSQL\u查询的WHERE条件中使用变量时,数据库将清空,php,mysql,Php,Mysql,桌子 +------------+---+---+---+---+---+---+---+ |学生id | m1 | m2 | m3 | m4 | m5 | m6 | m7| +------------+---+---+---+---+---+---+---+ ==数据库d1 ==表格等级的表格结构 |------ |列|类型| Null |默认值 |------ |//学生id/|int(5)|编号| |m1 |文本|编号| |m2 |文本|编号| |m3 |文本|编号| |m4 |文本|编号

桌子

+------------+---+---+---+---+---+---+---+

|学生id | m1 | m2 | m3 | m4 | m5 | m6 | m7|

+------------+---+---+---+---+---+---+---+

==数据库d1

==表格等级的表格结构

|------ |列|类型| Null |默认值 |------ |//学生id/|int(5)|编号| |m1 |文本|编号| |m2 |文本|编号| |m3 |文本|编号| |m4 |文本|编号| |m5 |文本|编号| |m6 |文本|编号| |m7 |文本|编号| ==表格等级的转储数据

|11111 | | | | | | |11112 | fg | fd | f | f | fd | f | f

==数据库d1

==表格主题的表格结构

|------ |列|类型| Null |默认值 |------ |//学生id/| int(11)|否| |c1 |文本|编号| |c2 |文本|编号| |c3 |文本|编号| |c4 |文本|编号| |c5 |文本|编号| |c6 |文本|编号| |c7 |文本|编号| ==转储表主题的数据

|11111 |英语|数学|科学|体育| IT |艺术|历史
|11112 | grdgg | vsbvbb | bdbbrfd | bdbrb | dbrbff | fbdfdbf | dbfbdfb

编辑:值不反映在输入中,而是反映在td中。将行值插入到输入元素中,以便可以$\u发布值

mysql_query("UPDATE grades SET m1 = '$M1', m2 = '$M2',m3 = '$M3',m4 = '$M4',m5 =    '$M5',m6 = '$M6',m7 = '$M7' WHERE $search = `student_id`");
?>
$value=$row['m1'];
回声“;
您应该修复

$value = $row['m1'];

echo "<td><input type='text' name='m1' value='$value'></td>";

你的列名是什么?在其中$search=
student\u id
”?对于调试SQL语句的问题,将SQL文本分配给变量是很有帮助的,例如$SQL=“选择…”。。。,然后在将SQL文本提交到数据库之前输出字符串的内容。(PHP mysql接口已弃用,新开发应使用mysqli或PDO。)查看我的编辑它将解决您的问题停止使用不推荐的
mysql\u*
函数;改用PDO/MySQLi@JohnRobertson它是我以后遇到的问题的解决方案。但不是当前问题的答案。当我使用变量时,即使我的输入文件中有数据,表也会用空空间更新lds。如果我在where条件中使用数字e.x.“11111”,它会更新。@JohnRobertson例如:
mysql\u查询(“更新成绩集m1='$m1'where
student\u id`='11111'))“@ChristianCugnet确保$search等于您表中的一个学生id。它相等吗?就像您的学生id是10,那么您的搜索值是10?@JohnRobertson是的,我在查询之前回显它,它与学生id匹配奇怪的是,如果我在更新之前将变量设置为11111,它就会工作。正如spencer所指出的:与t匹配在等式比较操作中,表达式的顺序并不重要;102=foo与foo=102相同。(当然,我们更习惯于将谓词写成column=value,但写成value=column同样有效。)。
mysql_query("UPDATE grades SET m1 = '$M1', m2 = '$M2',m3 = '$M3',m4 = '$M4',m5 =    '$M5',m6 = '$M6',m7 = '$M7' WHERE $search = `student_id`");
?>
$value = $row['m1'];

echo "<td><input type='text' name='m1' value='$value'></td>";
$result = mysql_query("SELECT * FROM `subjects` WHERE student_id='$search'");
$result2 = mysql_query("SELECT * FROM `grades` WHERE student_id='$search'");