我正在尝试大约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>
像你在脚本中看到的那样,每当我点击编辑并更改第一行的值时,即使我正在编辑其他行,它也会在我点击编辑按钮后发出消息
UPDATE评估SET Td ='11'WHERe Matricule ='1'
答案 0 :(得分:0)
替换它:
$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,您在$_GET
中发送的内容,您只是选择了第一行这个表就是为什么你总是更新第一行,无论你点击哪一个编辑。 =&GT;这就是差异WHERE etudiant.
Matricule ='$Matricule'
至于如何回应etudiant的名字,你错误的是当你使用echo $rows[2]
时你正试图mysql_fetch_assoc
,所以$rows
没有0,1,2,...索引,它有column_names作为索引。因此,如果您希望获得Nom_Etudiant
,请使用$rows['Nom_Etudiant'];
所以你的代码就像这样:
<input type="text" name="Td" value="<?php echo $rows['Td'];?>">