Помогите разобраться.при клике на название статьи должен выдавать поля соответствующие id выбранной статьи, а выдает всегда только первую статью.Заниматься только начал, поэтому прошу поменьше критики типа "Что за ****ты тут написал?!" <?php // если id статьи не существует, вывести список всех статей if (!isset($_GET['id'])){ $query ="SELECT title,id FROM posts"; $result = mysqli_query ($link,$query) or die ("Ошибка". mysqli_error($link)); // Проверка выведен ли массив в переменную $page if (!($page=mysqli_fetch_array($result))) { die('Error 404'); } //Вывод списков статей do{ printf ("<p><a href='edit_post.php?id=%s'>%s</a></p>",$page['id'],$page['title']); } while($page=mysqli_fetch_array($result)); } // Присваеваем значение id из глобального массива GET переменной $id elseif (isset($_GET['id'])){$id = $_GET['id']; $query ="SELECT * FROM posts"; $result = mysqli_query ($link,$query) or die ("Ошибка". mysqli_error($link)); if (!($page=mysqli_fetch_array($result))) { die('Error 404'); } // вывод всех полей статьи в форму print<<<HERE <form name="form1" method="POST" action="update_post.php"> <p> <label for="title">Введите название статьи</label> <br> <textarea name="title" id="title" cols="70" rows="1">$page[title]</textarea></p> <p> <label for="meta_d">Введите краткое описание статьи</label> <br> <input value="$page[meta_d]" type="text" name="meta_d" id="meta_d"></p> <p> <label for="meta_k">Введите ключевые слова</label> <br> <input value="$page[meta_k]" type="text" name="meta_k" id="meta_k"></p> <p> <label for="date">Введите дату публикации</label> <br> <input value="$page[date]" type="text" name="date" id="date" ></p> <p> <label for="author">Введите автора статьи</label> <br> <input value="$page[author]" type="text" name="author" id="author"></p> <p><label for="discription">Описание для вывода</label> <br> <textarea name="discription" id="discription" cols="70" rows="3">$page[discription]</textarea></p> <p> <label for="text">Введите текст статьи</label> <br> <textarea name="text" id="text" cols="70" rows="4">$page[text]</textarea></p> <input name="id" type="hidden" value="$page[id]"> <p><input type="submit" name="Занести cтатью в базу данных" id="submit" value="Сохранить статью"> </p> </form> HERE; } ?>
"Что за ****ты тут написал?!" Для отдельной статьи наверно нужно использовать запрос с выборкой по id конкретной записи. Учитесь показывать только осн. логику, отбрасывая всякую муть. Учитесь оформлять код на форуме при помощи соотв. инструментов. Чем постить все подряд, лучше показать несколько осн. фрагментов. Исходники тоже нужно структурировать. Я вам ранее рассказывал, что как минимум нужно отделять разметку от основной логики. Мои комменты тут почитайте. --- Добавлено --- При выводе в форму нужно кодировать HTML-сущности, например нельзя выводить кавычку, относящуюся к контенту, между кавычками, обрамляющими значение value. --- Добавлено --- GET-параметры можно использовать и в POST-запросах. Отображать форму и сохранять данные можно по одному и тому же адресу (GET – edit, POST – save), все равно обычно делают предварительную проверку на существование статьи при сохранении. Можно и все данные предварительно выбирать при сохранении, чтобы обновлять только те поля, которые действительно изменились, а не все подряд.
@miketomlin можно поподробнее о "запрос с выборкой по id конкретной записи". Только если можно более простым языком.Сложно мне пока понять все нюансы.как составить запрос, чтобы в нужные поля формы он вставлял текст из базы. ПС: Создаю админ панель для сайта. Администратор кликает на название статьи и попадает на страницу с полями, заполненными данными из БД (выбранные по ID)