/ / UPDATE і Set Database не працюють [дублювати] - php, mysql

UPDATE і Set Database не працюють [дублікат] - 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_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>

як і бачити в сценарії і кожен раз я натискаю на редагувати і змінювати значення 1-го рядка просто змінити навіть, що я редагування інших рядків, і це "дає повідомлення після того, як я натиснув на редагування buttom

Оцінка UPDATE SET Td = "11" WHERE Matricule = "1"

Відповіді:

0 для відповіді № 1

Замінити це:

$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_ *.

РЕДАГУВАТИ

Як зазначено в моєму коментарі вище, ваша проблема полягає в тому, що ви не вибираєте, де Marticule = $ Marticule, який ви надсилаєте $_GET, ви просто вибрали перший рядок таблиці, тому ви завжди оновлювали перший рядок, незважаючи на те, що ви редагуєте. WHERE etudiant.Матрикул="$Matricule"

Що стосується того, як віддзеркалити ім'я etudiant, те, що ви робите неправильно, це те, що ви намагаєтеся echo $rows[2] коли ви використовуєте mysql_fetch_assoc, так $rows не має 0, 1, 2, ... індексів, він має імена_колонок як індекси. Так що якщо ви хочете отримати Nom_Etudiant ти використовуєш $rows["Nom_Etudiant"];

тому ваш код стає таким:

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