ru en uk

  авторизация

(044) 362 48 16   (098) 294 41 60


   Цены

Home   |   WEB development   |   Articles   |   Programming in PHP

Работа с базами данных


Первое, что нужно для создания динамических страничек - база данных, где будет храниться вся информация. Хотите иметь возможность просматривать содержимое таблиц баз данных, делать выборки, добавлять или обновлять данные? Все это можно делать с помощью встроенных функций в РНР для работы с базами данных.

Для начала работы у нас должна быть установлена база PostgreSQL или MySQL. Я рекомендую последнюю, так как она работает под Unix и Windows, более стабильна, быстра и ошибкоустойчива. Еще раз сформулируем нашу задачу: освоить присоединение к серверу базы данных, создание и исполнение SQL запросов, а также работу с ошибками. Без знания этих действий мы вряд ли сможем без проблем управляться с базой данных.

Итак, приступим. Кстати, далее по тексту я буду использовать MySQL в виду изложенных выше причин (хотя с PostgreSQL все действия похожи, надо лишь поменять префикс mysql_ на pg_).

Создадим базу данных телефонных номеров сотрудников вашей фирмы для наших тестов:

shell> mysql -u root
mysql> create database basa;
Query OK, 1 row affected (0.00 sec)
mysql> use basa;
Database changed
mysql> CREATE TABLE phone (
-> id int(10) NOT NULL auto_increment,
-> name varchar(32) NOT NULL,
-> phone varchar(32) NOT NULL,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye

Или используйте файл из архива (в конце статьи) basa.sql, поместите его в каталог MySQL и сделайте так:
shell> mysql -u root < basa.sql

А сейчас напишем скрипт view.php, который будет показывать данные из базы данных.


<?
/* Замените нижеследующие переменные на свои */
$host "localhost";    // MySQL server
$user_db "root";        // MySQL пользователь
$pass_db "";            // MySQL пароль
$dbase "basa";        // MySQL база данных
$dtable "phone";        // Таблица в базе данных

/* Соединение с сервером базы данных */
mysql_connect ($host$user_db$pass_db);
/* Выбор базы данных */
mysql_select_db($dbase);
/* Создание SQL запроса */
$sql "SELECT id, name, phone FROM $dtable";
/* Исполнение SQL запроса */
$result mysql_query($sql);
/* Проверка количества вернувшихся строчек в результате*/
$rows mysql_num_rows($result);
/* Если нет результата или результат меньше 1, то предупредить нас об этом или вывести результат*/
if ((!$rows) || ($rows 1)) {echo "Результатов НЕТ!!!";}
else {
echo 
'<table width="309" border="1" cellspacing="1" cellpadding="0"><tr><td width="30">ID</td><td width="166">Имя</td><td width="98">Телефон</td></tr>';
while(list(
$id$name$phone) = mysql_fetch_row($result)) {
echo 
"<tr><td width="30">$id</td><td width="166">$name</td><td width="98">$phone</td></tr>\n";
     }
}
print 
"</table>\n";
?>


При запуске этого скрипта мы получим страничку с текстом "Результатов НЕТ!!!", так как в базе данных эти самые данные отсутствуют. Что делать? Перейти к следующему разделу и научиться добавлять данные из форм!

Передача данных из формы в базу данных


Создадим одну страничку под названием forma.html с HTML формой и скрипт add.php, который будет обрабатывать данные из этой формы.

forma.html

<html>
<head>
<title>Добавление данных в базу данных</title>
</head>
<body bgcolor="#FFFFFF">
<form name="test" action="add.php"  method="post">
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td>Имя</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Телефон</td>
<td><input type="text" name="phone"></td>
</tr>
</table>
<input type="submit" name="submit" value="Добавить">
</form>
</body>
</html>


add.php

<?
/* Замените нижеследующие переменные на свои */
$host "localhost";    // MySQL server
$user_db "root";        // MySQL пользователь
$pass_db "";            // MySQL пароль
$dbase "basa";        // MySQL база данных
$dtable "phone";        // Таблица в базе данных

/* Соединение с сервером базы данных */
mysql_connect ($host$user_db$pass_db);
/* Выбор базы данных */
mysql_select_db($dbase);

$name $_POST["name"];
$phone $_POST["phone"];

// Основные действия скрипта
// Создание SQL запроса
$sql "INSERT INTO $dtable (name, phone) VALUES ('$name', '$phone')";

/* Исполнение SQL запроса */
$result mysql_query($sql);
// Проверка исполнения операции
if(!$result) {
echo 
"<H2>Ошибка!</H2>\n";
echo 
mysql_errno().":  ".mysql_error()."<P>";
} else {
print 
'<META HTTP-EQUIV="Refresh" CONTENT="2; URL=forma.html">';
print 
"Запись <b>$name  -  $phone</b> создана!";
//echo phpinfo();
}
?>



Как видите, данные из формы (поля name и phone) РНР понимает как переменные. И эти переменные очень легко можно добавить в базу данных. Теперь при просмотре странички view.phtml Вы увидите то, что собственноручно внесли.

Данные можно обрабатывать скриптом, а также как часть URL, если заменить $_POST на $_GET в теле скрипта. Например: http://localhost/add.php?name=SomeName&phone=268-3962 добавит в базу данных имя SomeName с телефоном 268-3962. Кстати, это вовсе не номер телефона моей девушки - можете не звонить!!!

Дерзайте! А в следующей статье (очень скоро!) мы продолжим наши "разборки" с РНР.

 
Что такое сессии и для чего они нужны?
26.04.2007
Как отослать почту
29.05.2007
Постраничный вывод результата
29.05.2007