Я новичок в PHP и SQL и пытаюсь выяснить, как я могу заставить кнопку HTML Approve (submit) взаимодействовать с соответствующей записью. В настоящее время при нажатии кнопки «Утверждение» каждое из полей обновляется, но верхняя (первая) запись всегда обновляется. Я хотел бы, чтобы пользователь мог пропустить первую запись и обновить другую запись. Любые предложения и помощь приветствуются.php, sql, html, обновляющий уникальную запись с соответствующей кнопкой
$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('there was a problem connecting to the database' . mysql_error());
$sql = "SELECT Part, Lot, Qty, AnodTemp, Amp, SealTemp, PerformedBy, DateTimePerformed, FinalAnodThickness, QtyPass, FinalSealCheck, CheckedBy, DateTimeChecked, id FROM logs";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$unapproved = $row['CheckedBy'];
if($unapproved == null)
{
echo "<br><br><br> Part: " . $row['Part']. "/Lot: " . $row['Lot']. "/Qty: " . $row['Qty']. "/AnodTemp: " . $row['AnodTemp']. "/Amp: " . $row['Amp']. "/SealTemp: " . $row['SealTemp']. "/PerformedBy: " . $row['PerformedBy']. "/ID: " . $row['id']; ?>
<form action="adminapproval.php" method="post">
Final Anod Thickness:<br>
<input type="text" name="FinalAnodThickness">
<br><br>
Qty Pass:<br>
<input type="text" name="QtyPass">
<br><br>
Final Seal Check:<br>
<input type="text" name="FinalSealCheck">
<br><br>
<input type="submit" id="submit" value="Approve" name="submit">
<br><br>
</form>
_____________________________________________________________________<br>
<?php
if (isset($_POST['submit']))
{
$FinalAnodThickness= $_POST['FinalAnodThickness'];
$QtyPass= $_POST['QtyPass'];
$FinalSealCheck= $_POST['FinalSealCheck'];
$CheckedBy= $_SESSION['CheckedBy'];
$id = $row['id'];
$sql = "UPDATE logs SET FinalAnodThickness = '$FinalAnodThickness', QtyPass = '$QtyPass', FinalSealCheck = '$FinalSealCheck', CheckedBy = '$CheckedBy', DateTimeChecked = now() WHERE id = $id ";
$conn->query($sql);
break;
$conn->close();
echo "Record Updated.";
header("Location: adminapproval.php");
}
}
}
}
echo "<br><br> No further items need to be approved at this time.";
?>
Вы не ссылается свой идентификатор записи в вашей форме, так это неудивительно, что записи не обновляются должным образом ... Что я предлагаю что вы делаете, переписываете свой код так, чтобы на каждой итерации вашего цикла вы выводили форму, но помещали идентификатор записи «submit» как скрытый элемент INPUT или как параметр URL ('adminapproval.php? id = 2 '). – Kinnectus
Большой Крис, не могли бы вы привести мне пример? Я новичок, когда дело доходит до этого и пытается учиться. Я лучше всего учусь, раздумывая: P, когда я могу посмотреть пример, чтобы я мог видеть, как он должен работать. – CoShark
Я пытаюсь написать ответ, но я смущен вашей части «CheckedBy» ... Если ваш запрос БД возвращает значение null для «CheckedBy», вы используете сеанс, хранящийся «CheckedBy»? (т. е. почему вы пишете механизм «adminapproval») ... – Kinnectus