Php 更新并设置数据库don';行不通

Php 更新并设置数据库don';行不通,php,mysql,Php,Mysql,我试图在大约2小时内使查询在我的php脚本中工作,但除了表中的第一行更改了值外,什么都没有发生: <?php include_once('connect.php'); echo mysql_error(); if(isset($_GET['edit'])){ $Matricule = $_GET['edit']; $res = mysql_query("select etudiant.`Matricule`,etudiant.`Nom_E

我试图在大约2小时内使查询在我的php脚本中工作,但除了表中的第一行更改了值外,什么都没有发生:

     <?php
 include_once('connect.php');
echo mysql_error();
    if(isset($_GET['edit'])){
        $Matricule = $_GET['edit'];
        $res = mysql_query("select etudiant.`Matricule`,etudiant.`Nom_Etudiant`,etudiant.`Prenom_Etudiant`,evaluation.`Td`,evaluation.`Tp`,evaluation.`Exam` from etudiant,evaluation where etudiant.`Matricule`=evaluation.`Matricule`;");
        $rows = mysql_fetch_assoc($res);
    }
    echo mysql_error();
    if(isset($_POST['Td'])){
        $Td = $_POST['Td'];
        $Matricule = $_POST['Matricule'];
        $sql = "UPDATE evaluation SET Td='$Td' WHERE Matricule='$Matricule'";
        //$sql = "UPDATE `evaluation` SET `Td=15 WHERE `Matricule`=1";
        $res = mysql_query($sql) or die("Could not update".mysql_error());

            echo "<meta http-equiv='refresh' content='0;url=note-on.php'>";
    echo $sql;
    }
   ?>
 <form action="edit.php" method="POST">
TD: <input type="text" name="Td" value="<?php echo $rows[1];?>"><br>
<input type="hidden" name="Matricule" value="<?php echo $rows[Matricule];?>">
<input type="submit" value="Edit">
 </form> 
替换此:

$res = mysql_query("select etudiant.`Matricule`,etudiant.`Nom_Etudiant`,etudiant.`Prenom_Etudiant`,evaluation.`Td`,evaluation.`Tp`,evaluation.`Exam` from etudiant,evaluation where etudiant.`Matricule`=evaluation.`Matricule`;");
据此:

$res = mysql_query("select etudiant.`Matricule`,etudiant.`Nom_Etudiant`,etudiant.`Prenom_Etudiant`,evaluation.`Td`,evaluation.`Tp`,evaluation.`Exam` from etudiant INNER JOIN evaluation ON etudiant.`Matricule`=evaluation.`Matricule` WHERE etudiant.`Matricule`='$Matricule'");
如果你是一个新手,所以你还在学习,最好不要学习像mysql这样不受欢迎的东西。使用PDO或mysqli查看教程和视频,并准备好声明

编辑

正如我在上面的评论中所述,您的问题是您没有选择Marticule=$Marticule的位置(您在
$\u GET
中发送),您只是选择了表的第一行,这就是为什么无论单击哪个编辑,您总是更新第一行的原因。=>这就是造成差异的原因。
Matricule
='$Matricule'

至于如何回显etudiant的名称,您所做的错误是,当您使用
mysql\u fetch\u assoc
时,您试图
回显$rows[2]
,因此
$rows
没有0、1、2、。。。索引,它有列名称作为索引。因此,如果您想获得
Nom_Etudiant
,您可以使用
$rows['Nom_Etudiant']

因此,您的代码如下所示:

<input type="text" name="Td" value="<?php echo $rows['Td'];?>">

你很容易受到攻击,因为你正在更新
marticule='1'
为什么你希望它更新超过一行?也许如果你解释更多你想做什么,有人可以帮助这是我的表格:我试图分别编辑每个值代码鸟不是你我的朋友我在和Marc B说话,他问我为什么开另一门课!谢谢CodeBird,但我正在学习这一点,因为这是我的最后一个学习项目,所以我真的很忙,这就是为什么我要看视频,而且效果很好,非常感谢我的朋友,你真的很棒,你能告诉我问题出在哪里吗,还有一件事是如何在盒子上反映td值,wright现在是echo的名字或其他东西这是脚本:@user3566692我更新了我的答案,希望能有所帮助。我必须离开,所以我不能再回答了。好的,谢谢CodeBird,它真的起作用了,如果你来了,你能告诉我我必须对两个字段“TD”,“Exam”做同样的事情吗?我必须创建另一个文件吗?还是我应该用TD编辑添加脚本谢谢