Работа с базой данных MySQl с помощью PHP яляется очень распространенной задачей. Рассмотрим более подробно ее решение.
Создадим новую базу данных example и пользователя example (пароль example) с полными правами на эту БД. Для удобства можно использовать phpmyadmin. В базе данных example создадим таблицу user
с полями login (varchar, размер 10, первичный ключ) и username (varchar, размер 10). В этой таблице создадим две записи: user1 name1 и user2 name2.
Создадим приложение, которое будет позволять выводить содержимое таблицы user, добавлять и удалять записи.
Главная страница index.php будет содержать ссылки на дополнительные страницы, позволяющие работать с БД. Содержание файла index.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Main page</title>
</head>
<body>
<p><a href="viewdata">Список пользователей</a></p>
<p><a href="insdataform">Добавление пользователя</a></p>
<p><a href="deldataform">Удаление пользователя</a></p>
</body>
</html>
При работе с БД в первую очередь необходимо установить с ней соединение. Так как эту процедуру придется выполнять несколько раз,
то имеет смысл создать отдельный файл dbconnect.php, реализующий эту задачу.
<?php
// Подключение к СУБД mysql в качестве пользователя example с паролем example
$connect = mysql_connect("localhost", "example", "example" );
if(!$connect)
{
echo 'Невозможно подключиться к базе данных.';
exit;
}
// Выбор соответствующей базы данных
$selectdb = mysql_select_db("example" );
if(!$selectdb)
{
echo 'Невозможно выбрать базу данных.';
exit;
}
?>
Для реализации вывода списка пользователей создадим файл viewdata.php
<?php
#соединение с БД
require "dbconnect.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>User list</title>
</head>
<body>
<p>Список пользователей</p>
<?php
#выполнение SQL запроса к БД
$result=mysql_query("select * from example.user") or die("неверный запрос");
#обработка результата
while ($arr=mysql_fetch_row($result))
{
echo "<p>Login: $arr[0] Username: $arr[1] </p>";
}
?>
<p><a href="index.php">На главную</a></p>
</body>
</html>
В данном примере сначала устанавливается соединение с БД, затем создается запрос к БД и происходит обработка результата выполнения этого запроса.
Для обработки результата используется функция mysql_fetch_row, которая возвращает строку результата в виде массива.
Количество элементов массива равно количеству полей соответствующего SQL запроса.
Для вывода всех строк запроса испольуется цикл while.
Далее реализуем добавление новых пользователей. Для этого создадим два файла: insdataform.php и insdataformaction.php. Файл insdataform.php содержит описание формы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Insert data form</title>
</head>
<body>
<p>Добавление пользователя</p>
<form name="insdataform" method="post" action="insdataformaction.php">
<p><input type="text" name="login" value="Логин"></p>
<p><input type="text" name="username" value="Имя пользователя"></p>
<p><input type="submit" name="Submit" value="Добавить"></p>
</form>
</body>
</html>
Файл insdataformaction.php содержит программу, реализующую обработку переданных из формы данных
<?php
#соединение с БД
require "dbconnect.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Insert data form action</title>
</head>
<body>
<?php
$login = $_POST['login'];
$username=$_POST['username'];
#вставка данных в таблицу user
$query="insert into user values('$login','$username')";
if(mysql_query($query))
{
echo "Запись добавлена";
}
else
{
echo "Ошибка запроса";
}
?>
<p><a href="index.php">На главную</a></p>
</body>
</html>
Для реализации удаления пользователей создадим два файла: deldataform.php и deldataformaction.php. Аналогично предыдущему примеру, файл deldataform.php содержит описание формы:
<?php
#соединение с БД
require "dbconnect.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Delete data form</title>
</head>
<body>
<p>Удаление пользователя</p>
<form name="deldataform" method="post" action="deldataformaction.php">
<select name="login">
<?php
#выполнение запроса к БД (выбираем все записи из таблицы user)
$result=mysql_query("select * from example.user") or die("неверный запрос");
#обработка результата (формируем список выбора, содержащий логины)
while ($arr=mysql_fetch_row($result))
{
echo "<option value='$arr[0]'>$arr[0]</option>\n";
}
?>
</select>
<p><input type="submit" name="Submit" value="Удалить"></p>
</form>
</body>
</html>
Файл deldataformaction.php содержит программу, реализующую обработку переданных из формы данных
<?php
#соединение с БД
require "dbconnect.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Delete data form action</title>
</head>
<body>
<?php
$login = $_POST['login'];
#удаление пользователя с логином $login из таблицы user
$query="delete from user where login='$login'";
if(mysql_query($query))
{
echo "Пользователь ".$login." удален.";
}
else
{
echo "Ошибка запроса";
}
?>
<p><a href="index.php">На главную</a></p>
</body>
</html>
Результат выполнения представлен на следующих рисунках
Главная страница
Список пользователей
Добавление пользователей
Обновленный список пользователей
Удаление пользователей
Обновленный список пользователей