Работа с базой данных 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>






Результат выполнения представлен на следующих рисунках



Главная страница





Список пользователей





Добавление пользователей











Обновленный список пользователей





Удаление пользователей









Обновленный список пользователей