Это подробный урок по созданию баз данных в 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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Форма с сохранением в MySQL</title> <style type="text/css"> <!-- body { font: 12px Georgia; color: #666666; } h3 { font-size: 16px; text-align: center; } table { width: 400px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; } td { padding: 3px; } input { width: 250px; border: solid 1px #CCCCCC; } textarea { width: 250px; height: 100px; border: solid 1px #CCCCCC; } .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; } --> </style> </head> <body> <h3>Пример формы с сохранением данных в MySQL</h3> <form action="save_form.php" method="post" name="test_form"> <table border="1" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" align="center"><strong>Отправка запроса</strong></td> </tr> <tr> <td width="150">Имя :</td> <td><input type="text" name="test_name" maxlength="30" /></td> </tr> <tr> <td width="150">E-Mail :</td> <td><input type="text" name="test_mail" maxlength="30" /></td> </tr> <tr> <td width="150">Тема сообщения :</td> <td><input type="text" name="test_theme" maxlength="30" /></td> </tr> <tr> <td width="150">Сообщение :</td> <td><textarea name="test_mess"></textarea></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" class="buttons" value="Отправить запрос" /> <input type="reset" class="buttons" value="Очистить" /> </td> </tr> </table> </form> <br /> <form action="view_data.php" method="post" name="view_result"> <table> <tr> <td align="center"><input type="submit" class="buttons" value="Посмотреть ранее сохраненные данные" /></td> </tr> </table> </form> <form action="del_data.php" method="post" name="delete_data"> <table> <tr> <td align="center"><input type="submit" class="buttons" value="Удаление данных" /></td> </tr> </table> </form> <form action="update_data.php" method="post" name="update_data"> <table> <tr> <td align="center"><input type="submit" class="buttons" value="Редактирование и обновление данных" /></td> </tr> </table> </form> </body> </html>
<? ======================================== ?>
Шаг четвертый: Создание обработчика формы "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()); /* Определяем текущую дату */ $cdate = date("Y-m-d"); /* Составляем запрос для вставки информации в таблицу 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\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> <title>Вывод данных из MySQL</title> <style type=\"text/css\"> <!-- body { font: 12px Georgia; color: #666666; } h3 { font-size: 16px; text-align: center; } table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; } td { padding: 3px; text-align: center; vertical-align: middle; } .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; } --> </style> </head> <body> <h3>Вывод ранее сохраненных данных из таблицы MySQL</h3> <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\"> <tr style=\"border: solid 1px #000\"> <td><b>#</b></td> <td align=\"center\"><b>Дата обращения</b></td> <td align=\"center\"><b>Имена пользователей</b></td> <td align=\"center\"><b>E-Mail пользователей</b></td> <td align=\"center\"><b>Тема сообщения</b></td> <td align=\"center\"><b>Сообщения пользователей</b></td> </tr> "); /* Цикл вывода данных из базы конкретных полей */ while ($row = mysql_fetch_array($res)) { echo "<tr>\n"; echo "<td>".$row['id']."</td>\n"; echo "<td>".$row['data']."</td>\n"; echo "<td>".$row['name']."</td>\n"; echo "<td>".$row['email']."</td>\n"; echo "<td>".$row['theme']."</td>\n"; echo "<td>".$row['message']."</td>\n</tr>\n"; } echo ("</table>\n"); /* Закрываем соединение */ mysql_close(); /* Выводим ссылку возврата */ echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>"); ?>
<? ======================================== ?>
Шаг шестой: Удаление записей из базы данных "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\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> <title>Вывод и удаление данных из MySQL</title> <style type=\"text/css\"> <!-- body { font: 12px Georgia; color: #666666; } h3 { font-size: 16px; text-align: center; } table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; } td { padding: 3px; text-align: center; vertical-align: middle; } .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; } --> </style> </head> <body> <h3>Вывод и удаление ранее сохраненных данных из таблицы MySQL</h3> <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\"> <tr style=\"border: solid 1px #000\"> <td><b>#</b></td> <td align=\"center\"><b>Дата обращения</b></td> <td align=\"center\"><b>Имена пользователей</b></td> <td align=\"center\"><b>E-Mail пользователей</b></td> <td align=\"center\"><b>Тема сообщения</b></td> <td align=\"center\"><b>Сообщения пользователей</b></td> <td align=\"center\"><b>Удаление</b></td> </tr> "); /* Цикл вывода данных из базы конкретных полей */ while ($row = mysql_fetch_array($res)) { echo "<tr>\n"; echo "<td>".$row['id']."</td>\n"; echo "<td>".$row['data']."</td>\n"; echo "<td>".$row['name']."</td>\n"; echo "<td>".$row['email']."</td>\n"; echo "<td>".$row['theme']."</td>\n"; echo "<td>".$row['message']."</td>\n"; /* Генерируем ссылку для удаления поля */ echo "<td><a name=\"del\" href=\"del_data.php?del=".$row["id"]."\">Удалить</a></td>\n"; echo "</tr>\n"; } echo ("</table>\n"); /* Закрываем соединение */ mysql_close(); /* Выводим ссылку возврата */ echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>"); ?>
<? ======================================== ?>
Шаг седьмой: Редактирование и обновление записей в базе "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\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> <title>Редактирование и обновление данных</title> <style type=\"text/css\"> <!-- body { font: 12px Georgia; color: #666; } h3 { font-size: 16px; text-align: center; } table { width: 400px; border-collapse: collapse; margin: 5px auto; background: #E6E6E6; } td { padding: 3px; vertical-align: middle; } input { width: 250px; border: solid 1px #CCC; color: #FF6666; } textarea { width: 250px; height: 100px; border: solid 1px #CCC; color: #FF6666; } .buttons { width: auto; border: double 1px #666; background: #D6D6D6; color: #000; } #num { width: 20px; text-align: right; margin-right: 5px; float: right; } --> </style> </head> <body> <h3>Редактирование и обновление данных в таблице MySQL</h3> "); /* Цикл вывода данных из базы конкретных полей */ while ($row = mysql_fetch_array($res)) { echo "<form action=\"update_data.php\" method=\"post\" name=\"edit_form\">\n"; echo "<input type=\"hidden\" name=\"update\" value=\"".$row["id"]."\" />\n"; echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">\n"; echo "<tr>\n"; echo "<td colspan=\"2\" style=\"border-bottom:solid 1px #CCCCCC;\"><b><i><div id=\"num\">#".$row["id"]."</div>".$row['data']."</b></i></td>\n"; echo "</tr><tr>\n"; echo "<td>Имя пользователя:</td><td><input type=\"text\" value=\"".$row['name']."\" name=\"test_name\" /></td>\n"; echo "</tr><tr>\n"; echo "<td>E-Mail пользователя:</td><td><input type=\"text\" value=\"".$row['email']."\" name=\"test_mail\" /></td>\n"; echo "</tr><tr>\n"; echo "<td>Тема сообщения:</td><td><input type=\"text\" value=\"".$row['theme']."\" name=\"test_theme\" /></td>\n"; echo "</tr><tr>\n"; echo "<td>Сообщение:</td><td><textarea name=\"test_mess\">".$row['message']."</textarea></td>\n"; echo "</tr><tr>\n"; echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить изменения\" /></td>\n"; echo "</tr></table></form>\n\n"; } /* Закрываем соединение */ mysql_close(); /* Выводим ссылку возврата */ echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>"); ?>
<? ======================================== ?>
ну вот и все...