Добрый день. Необходимо производить редактирование данных в базе данных. Сначала я выбираю нужную таблицу. HTML:
<div class="col-lg-3" id = "block3">
<form id="form_edit">
<label>Редактирование</label>
<select class="form-control" name="edit" id = "edit">
<option value = "category">category</option>
<option value = "image">image</option>
<option value = "model">model</option>
<option value = "news">news</option>
<option value = "users">users</option>
</select>
<input type="button" id="edit_send" value = "Редактировать запись">
</form>
</div>
<script>
$('#edit_send').on('click',function(){
var table = $('#edit').val();
$.ajax({
type : "POST",
url: "admin_edit_script.php",
data: {table:table},
success : function(result){
url = "admin_form_edit.php" + '?param1='+table;
window.location.href = url;
},
error: function(xhr, resp, text) {
console.log(xhr, resp, text);
}
})
}
);
<script>
Передаю имя таблицы в другой файл и формирую поля.
if($_GET["param1"] == 'image') {
$sql = "SELECT * FROM image order by id";
$result = pg_query($connect, $sql);
echo "<form method = 'post' action = 'admin_edit_script.php'>";
while ($row = pg_fetch_array($result)) {
echo '<input type = checkbox id = "id" name = "id" value="'.$row["id"].'">
<input type = "text" id = "primary_name" name = "primary_name" value ="' . $row["primary_name"] . '">
<input type = "text" id = "secondary_name" name = "secondary_name" value ="' . $row["secondary_name"] . '">
<input type = "text" id = "link" name = "link" value ="' . $row["link"] . '">
<br>';
}
echo "<input type='hidden' id = 'table' name = 'table' value = '".$_GET['param1']."'><input type='submit'></form>";
}
Как задумывал я. В чекбоксе содержится id записи. При нажатии на кнопку нужно отправить данные в другой файл для выполнения запроса на Update и обновить ту запись, у которой id совпадает с выбранным id. Но по итогу у меня все поля при обновлении получают значения последнего поля. Вот на фотографии видно: я отмечал поле и редактировал. Но в итоге все поля получают значения из последних полей. Подозреваю, что это из-за того, что у всех инпутов одинаковые имена. Сам запрос:
if(($_POST["table"] == "image") and (isset($_POST["id"]))){
$id = intval($_POST["id"]);
$sql = "update image set primary_name = '".$_POST["primary_name"]."', secondary_name = '".$_POST["secondary_name"]."', link = '".$_POST["link"]."' where id = '".$id."'";
$result = pg_query($connect, $sql) or die("fgdgdfg");
}
Подскажите, как всё правильно организовать? Ибо не имел нормального опыта по редактированию данных в таблице через PHP. Сама таблица
Виртуальный выделенный сервер (VDS) становится отличным выбором