Обновление формы PHP База данных MySQL возвращает все записи базы данных после редактирования одной записи

поэтому у меня есть этот код, который другие члены стека помогли мне точно настроить и исправить некоторые ошибки, код работает все как надо, но есть одна маленькая деталь, после успешного редактирования одной записи и нажатия кнопки обновления ВСЕ из существующих записей, которые в базе данных загрузить на страницу. Вот мой код ниже:

<?php

$con = mysql_connect("localhost", "root", "M1q2w3e4r");
if (!$con) {
die("Can not connect: " . mysql_error());
}
mysql_select_db("inventory",$con);

if (isset($_POST['update'])){
$UpdateQuery = "UPDATE invoice SET `inv_number`='$_POST[inv_number]', `from_date`='$_POST[from_date]', `to_date`='$_POST[to_date]',`date_type`='$_POST[date_type]', `notes`='$_POST[notes]' WHERE id='$_POST[id]'";
mysql_query($UpdateQuery, $con);
};

$where = '';
if(!empty($_GET) && !empty($_GET['edit'])) {
$where = ' where id='.$_GET['edit'];
}
$sql = "SELECT * FROM invoice".$where;

$myData = mysql_query($sql,$con);
echo "<table border=1>
<tr>
<th>Inv #</th>
<th>From</th>
<th>To</th>
<th>Type</th>
<th>Notes</th>
</tr>";
while($record = mysql_fetch_array($myData)){
echo "<form action='edit.php' method='post'>";
echo "<tr>";
echo "<td>" . "<input type='text' name='inv_number' value='" . $record['inv_number'] . "'> </td>";
echo "<td>" . "<input type='text' id='from' name='from_date' value='" . $record['from_date'] . "'> </td>";
echo "<td>" . "<input type='text' id='to' name='to_date' value='" . $record['to_date'] . "'> </td>";
echo "<td>" . "<input type='text' name='date_type' value='" . $record['date_type'] . "'> </td>";
echo "<td>" . "<input type='text' name='notes' value='" . $record['notes'] . "'> </td>";
echo "<td>" . "<input type='hidden' name='id' value='" . $record['id'] . "'> </td>";
echo "<td>" . "<input type='hidden' name='hidden' value='" . $record['id'] . "'> </td>";
echo "<td>" . "<input type='submit' name='update' value='update'>" . " </td>";
echo "</tr>";
echo "</form>";
}

echo "</table>";
mysql_close($con);

?>

Я знаю, что это связано с формой action = «edit.php», так как она обновляет страницу, из которой извлекается номер идентификатора в URL. Итак, я попробовал это:

echo "<form action='edit.php?edit=<?php echo $_REQUEST["id"]; ?>' method='post'>";

но это только привело к тому, что мой edit.php показывался как пустая страница. Если кто-нибудь может помочь мне выяснить, как предотвратить отображение всех записей базы данных на странице после нажатия кнопки обновления, это действительно поможет.

1

Решение

Я мог бы сделать это, например, если бы я просто хотел показать только что обновленную запись:

if (isset($_POST['update'])){
$UpdateQuery = "UPDATE invoice SET `inv_number`='$_POST[inv_number]',    `from_date`='$_POST[from_date]', `to_date`='$_POST[to_date]',`date_type`='$_POST[date_type]', `notes`='$_POST[notes]' WHERE id='$_POST[id]'";
mysql_query($UpdateQuery, $con);
$where = ' where id='.$_POST[id];
}
else {
$where = '';
if(!empty($_GET) && !empty($_GET['edit'])) {
$where = ' where id='.$_GET['edit'];
}
}

Вы также можете использовать REQUEST вместо GET и создать скрытое поле ввода с именем «edit» в вашей форме.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector