Робота з базами даних Перше, що потрібно для створення динамічних сторінок - база даних, де буде зберігатися вся інформація. Хочете мати можливість переглядати вміст таблиць баз даних, робити вибірки, додавати або оновлювати дані? Все це можна робити за допомогоюью вбудованих функцій РНР для роботи з базами даних.
Для початку роботи в нас повинна бути встановлена база 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";f8000 "> / / MySQL база даних $ dtable = "phone"; / / Таблицяв базі даних
/ * З'єднання з сервером бази даних * / mysql_connect ($ host, $ user_db t>, $ pass_db); / * Вибір бази даних * / mysql_select_db ($ dbase < font color = "# 007700">); / * Створення SQL запиту * / $ sql = "SELECT id, name, phone FROM $ dtable" olor = "# 007700">; / * Виконання SQL запиту * / $ result = mysql_query ($ sqlolor = "# 007700">); / * Перевірка кількості повернулися рядків у результаті * / $ rows = mysql_num_rows ( > $ Result); / * Якщо немає результату, або результат менше 1, то попередити нас про це або вивести результат * / 00 "> if ((! $ Rows) | | ($ rows <1)) (echo" Результатів & nbsp; НІ! ";) 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 = & quot; 0 "> <tr> <td> Ім'я </ td> <td> <input type="text" name="name"> </ td> </ tr> <tr> <td> Телефон </ td> <td> <input type = "text" name = "phone & quot;> </ td> </ tr> </ table> <input type="submit" name="submit" value="Добавіть"> </ form> </ body> </ html>
add.php
<? / * Замініть наступні змінні на свої * / $ host = "localhost" ont>; / / MySQL server $ user_db = "root";; / / MySQL користувач $ pass_db = "";; / / MySQL пароль $ dbase = "basa"; / / MySQL база даних $ dtable = "phone"; / / Таблиця у базі даних
/ * З'єднання з сервером бази даних * / mysql_connect ($ host, $ user_db 07700 ">, $ pass_db); / * Вибір бази даних * / mysql_select_db ($ dbase 00 ">);
$ name = $ _POST [ "name"]; $ phone= "# 007700"> = $ _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. До речі, це зовсім не номер телефону моєї дівчини - можете не дзвонити!
Дерзайте! А в наступній статті (дуже скоро!) Ми продовжимо наші "розборки" з РНР. |