Это подробный урок по созданию баз данных в MySQL,
сохранения информации, ее извлечения, удаления определенных записей,
редактирование и обновление.
Особенно урок будет полезен новичкам.
Урок будет основан на форме обратной связи, необходимой практически на любом сайте.
<? ======================================== ?>
Шаг первый: Создание базы данных в MySQL
Открываем phpMyAdmin (входит в базовый пакет Denwer`а), и создаем базу с названием "test_base", кодировку выбираем "cp1251_general_ci".
<? ======================================== ?>
Шаг второй: Создание таблицы в MySQL с помощью SQL-запроса
Создать таблицу можно, конечно, и с помощью стандартных средств phpMyAdmin, но так наглядно будет видна структура создаваемой таблицы.
Создаем таблицу с названием "test_table" и с шестью полями с названиями:
"name" - здесь будут храниться имена пользователей;
"email" - здесь будут храниться адреса электронных ящиков пользователей;
"theme" - здесь будет храниться тема сообщения;
"message" - здесь будут храниться сообщения;
"data" - здесь будет храниться дата отправки сообщения;
"id" - идентификационный номер записи (строки), ключевое поле.
SQL-запрос:
create table test_table(
id int(11) not null auto_increment,
name varchar(255) not null,
email varchar(255) not null,
theme varchar(255) not null,
message text not null,
data date not null,
primary key (id)
);
<? ======================================== ?>
Шаг третий: Создание формы
index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Шаг четвертый: Создание обработчика формы "save_form.php" с сохранением полученных данных в MySQL
save_form.php:
<?
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test_base"; // название базы данных
/* Таблица MySQL, в которой будут храниться данные */
$table = "test_table";
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
/* Составляем запрос для вставки информации в таблицу
name...date - название конкретных полей в базе;
в $_POST["test_name"]... $_POST["test_mess"] - в этих переменных содержатся данные, полученные из формы */
$query = "INSERT INTO $table SET name='".$_POST['test_name']."', email='".$_POST["test_mail"]."',
theme='".$_POST["test_theme"]."', message='".$_POST["test_mess"]."', data='$cdate'";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
/* Закрываем соединение */
mysql_close();
/* В случае успешного сохранения выводим сообщение и ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\">
<font color=\"green\">Данные успешно сохранены!</font>
<br /><br />
<a href=\"index.html\">Вернуться назад</a></div>");
?>
<? ======================================== ?>
Шаг пятый: Вывод сохраненных данных "view_data.php"
view_data.php:
<?
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test_base"; // название базы данных
/* Таблица MySQL, в которой хранятся данные */
$table = "test_table";
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
/* Составляем запрос для извлечения данных из полей "name", "email", "theme",
"message", "data" таблицы "test_table" */
$query = "SELECT id, name, email, theme, message, data FROM $table";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
Шаг шестой: Удаление записей из базы данных "del_data.php"
del_data.php:
<?
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test_base"; // название базы данных
/* Таблица MySQL, в которой хранятся данные */
$table = "test_table";
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
/* Если была нажата ссылка удаления, удаляем запись */
$del = $query = "delete from $table where (id='$del')";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
/* Заносим в переменную $res всю базу данных */
$query = "SELECT * FROM $table";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
/* Узнаем количество записей в базе данных */
$row = mysql_num_rows($res);
/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
Шаг седьмой: Редактирование и обновление записей в базе "update_data.php"
update_data.php:
<?
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test_base"; // название базы данных
/* Таблица MySQL, в которой хранятся данные */
$table = "test_table";
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
/* Если была нажата кнопка редактирования, вносим изменения */
if(@$submit_edit) {
$query = "UPDATE $table SET name='$test_name', email='$test_mail', theme='$test_theme', message='$test_mess' WHERE id='$update'";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die (mysql_error());
}
/* Заносим в переменную $res всю базу данных */
$query = "SELECT * FROM $table";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
/* Узнаем количество записей в базе данных */
$row = mysql_num_rows($res);
/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">