IPB

Здравствуйте, гость ( Авторизация | Регистрация )

 
Ответить в данную темуНачать новую тему
> Урок практического применения PHP+MySQL
Рейтинг 5 V
GivioN
сообщение 19.4.2009, 11:45
Сообщение #1

Сетевой Корсар

Группа: RooT
Сообщений: 471
Регистрация: 14.9.2008
Из: HackZona.ru
Пользователь №: 1
Спасибо сказали: 42 раза




Автор:Exterior
Источник:www.html.by

Это подробный урок по созданию баз данных в MySQL,
сохранения информации, ее извлечения, удаления определенных записей,
редактирование и обновление.

Особенно урок будет полезен новичкам.

Урок будет основан на форме обратной связи, необходимой практически на любом сайте.



Шаг первый: Создание базы данных в MySQL

Открываем phpMyAdmin (входит в базовый пакет Denwer`а), и создаем базу с названием "test_base", кодировку выбираем "cp1251_general_ci".



Шаг второй: Создание таблицы в MySQL с помощью SQL-запроса

Создать таблицу можно, конечно, и с помощью стандартных средств phpMyAdmin, но так наглядно будет видна структура создаваемой таблицы.

Создаем таблицу с названием "test_table" и с шестью полями с названиями:
"name" - здесь будут храниться имена пользователей;
"email" - здесь будут храниться адреса электронных ящиков пользователей;
"theme" - здесь будет храниться тема сообщения;
"message" - здесь будут храниться сообщения;
"data" - здесь будет храниться дата отправки сообщения;
"id" - идентификационный номер записи (строки), ключевое поле.

SQL-запрос:
Код:

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:
Код HTML:

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:
PHP код:
HTML
<?

/* Соединяемся с базой данных */
$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:
PHP код:
HTML
<?

/* Соединяемся с базой данных */
$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:
PHP код:
HTML
<?

/* Соединяемся с базой данных */
$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:
PHP код:
HTML
<?

/* Соединяемся с базой данных */
$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>");

?>




Ну вот и все, приятного кодинга
Перейти в начало страницы
 
+Цитировать сообщение
danila
сообщение 3.10.2009, 18:41
Сообщение #2

Познающий

Группа: Пользователи
Сообщений: 27
Регистрация: 1.10.2009
Пользователь №: 1032
Спасибо сказали: 0 раз




а как создать базу даных в MySQL? где находится phpMyAdmin? и где поставить кодировку "cp1251_general_ci".
Перейти в начало страницы
 
+Цитировать сообщение
PRStudio
сообщение 7.2.2010, 18:50
Сообщение #3

Сетевая-Крыса

Группа: Участник
Сообщений: 286
Регистрация: 9.6.2009
Из: БССР
Пользователь №: 815
Спасибо сказали: 21 раз




смотря у кого ты хостаешься, и есть ли это в твоем хостинг-пакете
Перейти в начало страницы
 
+Цитировать сообщение
SaTuRn
сообщение 21.3.2010, 13:09
Сообщение #4

Участник

Группа: Пользователи
Сообщений: 35
Регистрация: 14.8.2009
Из: Микашевичи
Пользователь №: 975
Спасибо сказали: 0 раз




Шаг второй.
Как создать таблицу в MySQL (besthost)?
Перейти в начало страницы
 
+Цитировать сообщение
barmen
сообщение 21.3.2010, 13:42
Сообщение #5

Мастер

Группа: Участник
Сообщений: 281
Регистрация: 14.3.2009
Из: Беларусь
Пользователь №: 660
Спасибо сказали: 25 раз




=) Заходишь в директадмин, там будет "управление mysql", жмешь туда. Дальше - создать таблицу. Вводишь логин/пасс/таблицу и все =)
Перейти в начало страницы
 
+Цитировать сообщение
SaTuRn
сообщение 27.3.2010, 22:39
Сообщение #6

Участник

Группа: Пользователи
Сообщений: 35
Регистрация: 14.8.2009
Из: Микашевичи
Пользователь №: 975
Спасибо сказали: 0 раз




Спасибо, уже освоился=) Всё Работает)) Жду новых уроков.
Перейти в начало страницы
 
+Цитировать сообщение
PRStudio
сообщение 15.8.2010, 20:53
Сообщение #7

Сетевая-Крыса

Группа: Участник
Сообщений: 286
Регистрация: 9.6.2009
Из: БССР
Пользователь №: 815
Спасибо сказали: 21 раз




Возник вот такой вопрос, как привязать событие к кнопке, из примера не совсем понятно откуда берется, наппример @button, я пробовал так, но ничего не получил:
1)
Код
print <<<HERE
<form method="post">
<input type="button" name="button" />
</form>
HERE;
$button = $_POST["button"];
if(@$button){
print "Лалалала";
}

2)
Код
print <<<HERE
<input type="button" name="button" />
HERE;
$button = $_POST["button"];
if(@$button){
print "Лалалала";
}
Перейти в начало страницы
 
+Цитировать сообщение
donald_666
сообщение 21.8.2010, 10:12
Сообщение #8

Почетный участник

Группа: Участник
Сообщений: 149
Регистрация: 7.10.2008
Из: Boruisk-[team]
Пользователь №: 7
Спасибо сказали: 9 раз




когда я смогу получить версию на проверочку?
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6.9.2010, 6:20