@aina2803

Как реализовать редактирование уже существующих записей (программа есть но не работает)?

Есть страница с заметками и комментариями к ним, там есть ссылка изменить заметку, при нажатии ссылки открывается другая страница (код этой страницы внизу). На странице 2 текстового поля и кнопка "изменить". В текстовых полях должны быть тема заметки и сама заметка, которую мы собираемся изменить. По заданию мы должны поменять тему заметки и заметку, и при нажатии кнопки изменить заметка должна обновиться. Программа не выводит никакую ошибку, но и изменение заметки тоже не получается. В чем ошибка?
Код:
Есть страница с заметками и комментариями к ним, там есть ссылка изменить заметку, при нажатии ссылки открывается другая страница (код этой страницы внизу). На странице 2 текстового поля и кнопка "изменить". В текстовых полях должны быть тема заметки и сама заметка, которую мы собираемся изменить. По заданию мы должны поменять тему заметки и заметку, и при нажатии кнопки изменить заметка должна обновиться. Программа не выводит никакую ошибку, но и изменение заметки тоже не получается. В чем ошибка?
Код:
<?php
$note_id = $_GET['note'];
require_once("mysitedb.php");
$query = "SELECT * FROM `notes` WHERE `id` = '{$note_id}'";
$result = mysqli_query($link, $query);
$edit_note = mysqli_fetch_array($result);
?>
<!DOCTYPE html> 
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form method="POST">
<p>Заголовок заметки: <input type="text" name="title"
	value = "<?php echo $edit_note['title'];?>"/></p>
<p>Текст заметки: <textarea name="article">
<?php echo $edit_note['article'];?></textarea></p> 
<input type="hidden" name = "note" value="<?php echo $edit_note['id']?>"/>
<input type="submit" name= "submit" value="Изменить"/>
</form>
<a href = "default.php"> На главную </a>
</body>
</html>
<?php
$title = $_POST['title'];
$article = $_POST['article'];
$update_query = "UPDATE notes SET title = '$title', article = '$article' WHERE id = $note_id";
$update_result = mysqli_query ($link, $update_query);
?>
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
@aleksmir
Системный администратор, программист
Тут две ошибки, первая - это при определении $note_id, должно быть так:
$node_id = isset($_POST['id']) ? $_POST['id'] : $_GET['note'];

Вторая, это нужно подставлять значения $_POST после перерисовки и вычисленную $node_id:
<form method="POST">
<p>Заголовок заметки: <input type="text" name="title"  value = "<?php echo isset($_POST['title']) ? $_POST['title'] : $edit_note['title']; ?>"/></p>
<p>Текст заметки: <textarea name="article"><?php echo isset($_POST['article']) ? $_POST['article'] : $edit_note['article']; ?></textarea></p> 
<input type="hidden" name = "note" value="<?php echo $node_id; ?>"/>
<input type="submit" name= "submit" value="Изменить"/>
</form>

Тут тоже ошибка, она на сохранение не влияет, но вызывает ошибку выполнения, которая у вас не отображалась скорее всего потому, что вывод ошибок отключен. Можно подправить так:
if (isset($_POST)) {
$title = $_POST['title'];
$article = $_POST['article'];
$update_query = "UPDATE notes SET title = '$title', article = '$article' WHERE id = $note_id";
$update_result = mysqli_query ($link, $update_query);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы