Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

WEB - дизайн / Лабораторні роботи / Лабораторна робота №21

.pdf
Скачиваний:
22
Добавлен:
30.05.2020
Размер:
99.95 Кб
Скачать

Лабораторная работа №21

Работа с базами данных с помощью PHP. СУБД MySQL

Цель работы: формирование умений применение PHP для доступа к базам данных, и формирование умений работы с MySQL.

Работа с базами данных с помощью PHP

Одним из ценных качеств языкаPHP это наличие интерфейсов к большому количеству систем управления баз данных. Это Abadas D, dBase, Empress, FilePro, Informix, Interbase, mSQL, MySQL, Oracle, PostGreSQL, Solid, Sybase, Velocis, Unix dbm, и другие. Хотя в примерах будем использовать интерфейс к MySQL. Интерфейсы доступа к данным других СУБД выглядят аналогично.

Примеры исходников на PHP:

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

-Имя - user_name

-телефон - phone

-фотография - img (имя файла, который находится в каталоге foto/)

Обработка форм с помощью PHP-сценария

РНР размещает данные, полученные от пользователя в одном из массивов предопределенных переменных $HTTP_GET_VARS или $HTTP_POST_VARS в зависимости от использованного метода передачи данных. Для получения данных из этих массивов вPHP-скрипте используют обращения типа $HTTP_POST_VARS[имя_поля_формы], если был использован метод передачи данныхPOST, или $HTTP_GET_VARS [имя_поля_формы], если был использован метод передачи данных GET.

Рассмотрим пример передачи данных с помощью формы, созданной с помощью следующего

HTML-кода:

<html>

<title>Передача данных РНР-скрипту</title> <body>

<form action="http://localhost/php_form_post.php" method=POST>

Введите имя:

<br><input type=text maxlength=150 name=username> <br>Введите год рождения:

<br><input type=text maxlength=150 name=year> <br><input type=submit value=Отправить> </form></body></html>

Внешний вид формы приведен на рис. 1

Рисунок 1 Форма для ввода данных

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

<html> <title>приветствие</title> <body>

<?php

echo "Здравствуйте, $HTTP_POST_VARS[username]! Вы родились в $HTTP_POST_VARS[year] году. <br>";

?>

</body> </html>

Результат работы PHP-сценария, который будет выведен Webв -браузер пользователя, представлен на рис. 2.

Рисунок 2 Результат работы PHP-скрипта

Скрипт обработки загружаемых данных.

Не забудьте, что переменные посланные методом GET, сначала нужно получить из массива $_GET

<?php $stud=$_GET['student']; $name=$_GET['username']; php>

<?php

/* Определяем значения переменным */ $hostname="localhost"; $username="Ваш_логин"; $password="Ваш_пароль";

/* Имя базы данных */ $dbName="Имя_вашей_базы_данных"; /* Имя таблицы */ $usertable="Имя_таблицы";

/* Создать соединение с MySql*/

MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу подсоединиться"); /* Выбор БД */

MYSQL_SELECT_DB($dbName) or die("Не могу выбрать БД"); /* Введение информации в БД */

$query="INSERT INTO $usertable VALUES ('$user_name','$phone','$img')"; $result=MYSQL_QUERY($query);

/* Закрыть соединение */ MYSQL_CLOSE();

print "Запись введена в БД! <br>"; ?>

Скрипт обработки поискового запроса.

<?php $hostname="localhost"; $username="Ваш_логин"; $password="Ваш_пароль";

$dbName="Имя_вашей_базы_данных"; $usertable="Имя_таблицы";

/* Создать соединение с MySql*/ mysql_connect($hostname,$username,$password) or die("No connect"); mysql_select_db("$dbName") or die("No select DB");

/* Выбрать людей, имена которых начинаются на $usr_name */ $query="select * from $usertable where user_name like '$user_name%'"; $result=mysql_query($query);

/* Сколько нашлось таких сотрудников? */ $number=mysql_numrows($result);

/* Распечатка выбранных сотрудников */ $i=0;

if ($number == 0)

{

print "Нет данных о $user_name в БД <br>";

}

elseif ($number > 0)

{

while ($i < $number)

{

/* Присвоение переменным значений полей user_name, phone, img для i-й строки */

$user_name=mysql_result($result,$i,"user_name"); $phone=mysql_result($result,$i,"phone"); $img=mysql_result($result,$i,"img");

/* Вывод найденных значений */

print "<br><img src='foto/$img' height=130><br>"; print "<u> Имя:</u> <br>";

print "$user_name <br><br>"; print "<u> Телефон: </u><br>"; print "$phone <br><br>";

$i++;

print "<hr>";

}

}?>

Скрипт для удаления данных.

<?php $hostname="localhost"; $username="Ваш_логин"; $password="Ваш_пароль";

$dbName="Имя_вашей_базы_данных"; $usertable="Имя_таблицы";

mysql_connect($hostname,$username,$password) or die("No connect"); mysql_select_db("$dbName") or die("No select DB");

/* Удаление записи для поля user_name */

$query="delete from $usertable where user_name='$user_name'"; $result=mysql_query($query);

print "Запись удалена <br>"; ?>

Скрипт редактирования данных.

<?php $hostname="localhost"; $username="Ваш_логин"; $password="Ваш_пароль";

$dbName="Имя_вашей_базы_данных"; $usertable="Имя_таблицы";

mysql_connect($hostname,$username,$password) or die("No connect"); mysql_select_db("$dbName") or die("No select DB");

/* Выбор записи по полю user_name */

$query="select * from $usertable where user_name='$user_name'"; $result=mysql_query($query);

/* Определение существования выбранной записи */ $number=mysql_numrows($result);

if ($number==0)

{

print "Нет такой записи!<br>";

}

else

{

/* Если запись выбрана из базы данных, вывести все ее поля в форму для редактирования и удалить ее */

$phone=mysql_result($result,0,"phone"); $img=mysql_result($result,0,"img");

print "<img src='foto/$img' height=130><br>"; /* Удаление записи */

$query="delete from $usertable where user_name='$user_name'"; $result=mysql_query($query);

/* Создание формы для редактирования */ print "<form method=post action='form5.php'>"; print "<br><b>Введите Ваше имя:</b>";

print "<br><input name='user_name' value='$user_name' size=30>"; print "<br><br><b>Введите номер вашего телефона:</b>";

print "<br><input name='phone' value='$phone' size=10>"; print "<br><br><b>Введите имя фото лат.буквами:</b>"; print "<br><input name='img' value='$img' size=20>";

print "<br><br><input type='submit' value='Зарегистрировать'>"; print "</form>";

}

?>

Скрипт для загрузки отредактированых данных.

<?php

hostname="localhost"; $username="Ваш_логин"; $password="Ваш_пароль"; $dbName="Имя_вашей_базы_данных"; $usertable="Имя_таблицы";

/* Создать соединение */

MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу подсоединиться"); /* Выбор БД */

MYSQL_SELECT_DB($dbName) or die("Не могу выбрать БД"); /* Введение информации в БД */

$query="INSERT INTO $usertable VALUES ('$user_name','$phone',''$img')"; $result=MYSQL_QUERY($query);

/* Закрыть соединение */ MYSQL_CLOSE();

print "Запись введена в БД! <br>"; ?>

Обработка множественного выбора

Форма. <body>

<form action="reg.php" method="GET"> <div>

Имя: <input type="txt" name="user" /> <br/>

Город: <select name="city_id[]" multiple> <!--имя массива--> <option value="1">Сумы</option>

<option value="2">Киев</option> <option value="3">Полтава</option> <option value="4">Харьков</option> <option value="5">Одесса</option> </select>

</div>

<input type="submit" name="Submit" value="Submit" /> </form>

</body>

Обработка.

 

<?php

 

$city = $_GET['city_id'];

 

$limit = count($city);

// получить размер массива

for ($i=0; $i<$limit; $i++)

// перебираем массив

{

 

if(mysql_query("INSERT INTO table city_id VALUES ('$city[$i]')"))

{

echo "$i добавлен - $city[$i]<br/>"; } else

{

echo "$i error - $city[$i]<br/>";

}

}

?>

Практическое задание

Приведенные примеры скриптов, применить к страницам своего сайта.

Написать скрипт для обработки формы Вашего сайта, скрипт добавления записей в таблицу БД, скрипт удаления данных.