В этой статье я приведу пример, как сделать редактор для содержимого сайта, т.е. редактирование информации содержащейся в базе данных MySQL. Итак, есть следующая задача: отредактировать запись в таблице базы данных. Редактирование будет происходить сиз обычной HTML формы.Первое что необходимо сделать – выбрать нужные значения из таблицы. Как это сделать можно прочитать здесь. Для примера возьмем таблицу товаров из статьи про корзину интернет магазина. Логика скрипта следующая:
- Проверяем была ли нажата кнопка «Редактировать»(Submit).
- Если нет, выводим форму с заполненными полями
- Если да, изменяем содержимое нужной ячейки.
Начнем с формы, так проще. Создаем страницу update.php. Структура таблицы товаров следующая: 1. идентификатор id (smallint) 2. название товара name(текстовое поле varchar(255)) 3. цена товара (float).
Выбираем значение из базы данных:
<?php
$q=mysql_query(”SELECT * FROM products WHERE id=’$id’”);
$product=mysql_fetch_assoc($q);
?>
<form id="form1" name="form1" method="post" action="update.php">
<label>Название товара: <input name="name" type="text" id="name" value=<?php echo $product[‘name’];?> />
<br />
Цена: <input name="price" type="text" id="price" value=<?php echo $product[‘price’];?> />
</label>
<input name="id" type="hidden" id="id" value=”<?php echo $product[‘id’]?>”/>
<input name="edit" type="hidden" id="edit" />
<p>
<label>
<input type="submit" name="Submit" value="сохранить" />
</label>
</p>
</form>
Форма для редактирования готова. Следующим шагом необходимо поставить условие, которое будет определять, нажал ли пользователь на кнопку редактировать, или он только хочет заняться редактированием данных.
Условие предельно простое. Обратите внимание на скрытое поле с именем edit, именно оно говорит скрипту, что нужно отредактировать данные:
<?
if (!isset($_POST[‘edit’]) {
$q=mysql_query(”SELECT * FROM products WHERE id=’$id’”);
$product=mysql_fetch_assoc($q);
?>
<form id="form1" name="form1" method="post" action="update.php">
<label>Название товара: <input name="name" type="text" id="name" value=<?php echo $product[‘name’];?> />
<br />
Цена: <input name="price" type="text" id="price" value=<?php echo $product[‘price’];?> />
</label>
<input name="id" type="hidden" id="id" value=”<?php echo $product[‘id’]?>”/>
<input name="edit" type="hidden" id="edit" />
<p>
<label>
<input type="submit" name="Submit" value="сохранить" />
</label>
</p>
</form>
<?php
}
else {
//Редактируем данные:
$q=mysql_query(”UPDATE products SET name=’”.$_POST[‘name’].”’, price=’”.$_POST[‘price’].”’ WHERE id=’”.$_POST[‘id’].”’”);
if (!q) {
echo “Не удалось выполнить запрос SQL”;
}
}
?>
Обратите внимание, что обработчик формы и сама форма находятся на одной странице update.php. Таким образом теперь мы умеем редактировать данные в базе MySQL, ну а дальше модифицируете форму под вашу структуру данных.
Замечание: Обратите внимание, что в страницу update.php нужно передать значение id, по которому происходит выборка продукта, обычно его можно передать методом GET дописав значение id, т.е. ссылка на страницу редактирования будет выглядеть так: update.php?id=…