Обновление формы PHP База данных MySQL не завершает обновления

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

<?php
$con = mysql_connect("localhost", "name", "password");
if (!$con) {
die("Can not connect: " . mysql_error());
}
mysql_select_db("inventory",$con);

if (isset($_POST['update'])){
$UpdateQuery = "UPDATE invoice SET Inv #='$_POST[inv_number]', Date Type='$_POST[date_type]', ID='$_POST[id]' WHERE id='$_POST[id]'";
mysql_query($UpdateQuery, $con);
};

$sql = "SELECT * FROM invoice";
$myData = mysql_query($sql,$con);
echo "<table border=1>
<tr>
<th>Inv #</th>
<th>Date Type</th>
<th>ID</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 name=date_type value=" . $record['date_type'] . " </td>";
echo "<td>" . "<input type=text 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);

?>

Это кнопка, которую я имею на моей странице search.php, где отображаются мои записи.

<a href='edit.php?edit=$row[id]'>edit</a>

При входе на страницу edit.php, когда я нажимаю кнопку «Изменить» для конкретной записи, на ней отображаются все записи в моей таблице, что не является идеальным, поскольку я бы предпочел увидеть только ту запись, которую я хочу отредактировать / обновить. Эти две проблемы — проблема, которую мне не удалось решить. Любая помощь приветствуется. Спасибо заранее всем.

0

Решение

Ваше имя колонки MySQL действительно Inv #? Если это так, вам нужно добавить обратные пометки, как это:

`Inv #`

Но, глядя на вашу форму, похоже, что имя поля — inv_number. Кроме того, вы видите все записи, поскольку в предложении select отсутствует модификатор where.

3

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

Замените свою строку:

$sql = "SELECT * FROM invoice";

с этой линией

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

По вопросам рекламы [email protected]