Разработка приложений БД на cервере MySQL с помощью PHP

  • doc
  • 11.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 171. Разработка приложений БД на cервере MySQL с помощью PHP.doc

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

 

Разработка приложений БД на cервере MySQL с помощью PHP

 

Цель работы: изучить настройки сервера БД MySQL, возможности подключения к БД с помощью PHP

 

Краткие теоретические сведения

MySQL – это реляционная система управления базами данных. То есть данные в ее базах хранятся в виде логически связанных между собой таблиц, доступ к которым осуществляется с помощью языка запросов SQL. MySQL – свободно распространяемая система Кроме того, это достаточно быстрая, надежная и простая в использовании СУБД, вполне подходящая для не слишком глобальных проектов.

Работать с MySQL можно в текстовом режиме (рис. 3.1), и в графическом (рис. 3.2). Существует очень популярный визуальный интерфейс (написанный на PHP) для работы с этой СУБД – называется PhpMyAdmin. Этот интерфейс позволяет значительно упростить работу с базами данных в MySQL.

В текстовом режиме работа с базой данных выглядит просто как ввод команд в командную строку, а результаты выборок возвращаются в виде своеобразных таблиц, поля в которых налезают друг на друга, если данные не помещаются на экран .

 

Работа с MySQL в коммандной строке. Команда show databases — вывести все имеющиеся базы данных

empty Работа с MySQL в коммандной строке. Результат обработки команды show databases

Рисунок 3.1 –  Работа с MySQL в коммандной строке. Команда show databases — вывести все имеющиеся базы данных

 

PhpMyAdmin позволяет пользоваться всеми достоинствами браузера, включая прокрутку изображения, если оно не умещается на экран. Многие из базовых SQL-функций работы с данными в PhpMyAdmin сведены к интуитивно понятным интерфейсам и действиям, напоминающим переход по ссылкам в Internet.

Сервер MySQL очень распространен и часто используется в Веб–технологиях. На этом сервере базируются большинство сайтов и решений в Интернете.

По настройке сервера MySQL можно посмотреть здесь: http://www.netbeans.org/kb/docs/ide/install-and-configure-mysql-server_ru.html

 

Пример:

1 Для создания новой БД на сервере  (http://localhost/denwer/) выбрать ссылку: phpMyAdmin - администрирование СУБД MySQL :

 

 

Рисунок 3.2 –  Страница phpMyAdmin 

 

2 Создать таблицу в БД, например для хранения информации о кофе (info_coffee)

 

   

Рисунок 3.3 – Создание таблицы

 

3 Создать набор полей, указать типы данных, размер текстовых полей. Если необходимо указать «auto_increment» для ключевого поле (предварительно его создав – primary key)

 

 

Рисунок 3.3 – Создание набора полей

 

Нажать «Сохранить»

 

4 Для добавления данных нажать «Вставить»:

 

 

Рисунок 3.4 –  Созданная структура таблицы «info_coffee»

 

 

Рисунок 3.5 – Добавление записей в таблицу

 

Для просмотра всех записей нажать «Обзор»:

 

Рисунок 3.6 – Просмотр всех записей

 

Взаимодействие PHP и MySQL

 

Чтобы построить интерфейс для добавления информации в эту таблицу, нужно ее структуру (т.е. набор ее полей) отобразить в html-форму.

Разобьем эту задачу на следующие подзадачи:

-      установка соединения с БД;

-      выбор рабочей БД;

-      получение списка полей таблицы;

-      отображение полей в html-форму.

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

Установка соединения

Итак, первое, что нужно сделать, - это установить соединение с базой данных. Воспользуемся функцией mysql_connect:

 
ресурс mysql_connect ( [строка server 
    [, строка username [, строка password
   [, логическое new_link 
    [, целое client_flags]]]]])
 

Данная функция устанавливает соединение с сервером MySQL и возвращает указатель на это соединение или FALSE в случае неудачи. Для отсутствующих параметров устанавливаются следующие значения по умолчанию:

 

server = 'localhost:3553'  (если по умолчанию используется порт 80, то ничего указывать не нужно)
username = имя пользователя владельца процесса сервера (по умолчанию root)
password = пустой пароль 
 
<?
$conn = mysql_connect("localhost", "root","")
or die("Невозможно установить соединение: ". mysql_error());
echo "Соединение установлено";
mysql_close($conn);
?>

 

Соединение с сервером закрывается при завершении исполнения скрипта, если оно до этого не было закрыто с помощью функции mysql_close().

Выбор базы данных

После установки соединения нужно выбрать базу данных, с которой будем работать. Наши данные хранятся в базе данных coffee.В PHP для этого существует функция mysql_select_db.

Синтаксис mysql_select_db:

логическое mysql_select_db (строка database_name[, ресурс link_identifier])

Эта функция возвращает TRUE в случае успешного выбора базы данных и FALSE - в противном случае.

 
mysql_select_db("coffee");

 

Получение списка полей таблицы

Как получить список полей таблицы? В PHP есть своя команда - mysql_list_fields.

Синтаксис mysql_list_fields

ресурс mysql_list_fields ( строка database_name,  строка table_name 
   [, ресурс link_identifier])
 

Эта функция возвращает список полей в таблице table_name в базе данных database_name. Результат работы этой функции – переменная типа ресурс. Это ссылка, которую можно использовать для получения информации о полях таблицы, включая их названия, типы и флаги.

Функция mysql_field_name возвращает имя поля, полученного в результате выполнения запроса. Функция mysql_field_len возвращает длину поля. Функция mysql_field_type возвращает тип поля, а функция mysql_field_flags возвращает список флагов поля, записанных через пробел. Типы поля могут быть int, real, string, blob и т.д. Флаги могут быть not_null, primary_key, unique_key, blob, auto_increment и т.д.

Синтаксис у всех этих команд одинаков:

строка mysql_field_name ( ресурс result, целое field_offset)
строка mysql_field_type ( ресурс result, целое field_offset)
строка mysql_field_flags (ресурс result, целое field_offset)
строка mysql_field_len ( ресурс result, целое field_offset)

Здесь result – это идентификатор результата запроса (например, запроса, отправленного функциями mysql_list_fields или mysql_query, а field_offset - порядковый номер поля в результате.

То, что возвращают функции типа mysql_list_fields или mysql_query, представляет собой таблицу, а точнее, указатель на нее. Чтобы получить из этой таблицы конкретные значения, нужно задействовать специальные функции, которые построчно читают эту таблицу. К таким функциям и относятся mysql_field_name и т.п. Чтобы перебрать все строки в таблице результата выполнения запроса, нужно знать число строк в этой таблице. Команда mysql_num_rows(ресурс result) возвращает число строк во множестве результатов result.

А теперь попробуем получить список полей таблицы info_coffee (коллекция экспонатов).

<? 
$conn = mysql_connect("localhost","root","")
or die("Невозможно установить соединение: ". mysql_error());
echo "Соединение установлено";
mysql_select_db("info_coffee");
$list_f = mysql_list_fields ("coffee","info_coffee",$conn);
  $n = mysql_num_fields($list_f);
for($i=0;$i<$n; $i++){
  $type = mysql_field_type($list_f, $i);
  $name_f = mysql_field_name($list_f,$i);
  $len = mysql_field_len($list_f, $i);
  $flags_str =  mysql_field_flags (
               $list_f, $i);
echo "<br>Имя поля: ". $name_f;
echo "<br>Тип поля: ". $type;
echo "<br>Длина поля: ". $len;
echo "<br>Строка флагов поля: ".
    $flags_str . "<hr>";
}
?>

 


Создадим форму для наполнения БД:

 

<form action=insert.php method=post>

введите название <input type=text name=name_c> <br>

введите цену <input type=text name=price_c> <br>

выберите фирму <select name=firma_c>

                                      <option> nescafe

                                      <option> jacobs

                                      <option> tchibo

                                      </select>

<br><input type=submit name=ok value=insert_c>

</form>

Теперь нужно сделать самое главное – отправить данные из этой формы в нашу базу данных. Как вы уже знаете, для того чтобы записать данные в таблицу, используется команда INSERT языка SQL. Например:

mysql> INSERT INTO info_coffee 
           SET name='Черная карта арабика';

Возникает вопрос, как можно воспользоваться такой командой (или любой другой командой SQL) в PHP скрипте. Для этого существует функция mysql_query().

Синтаксис mysql_query:

ресурс mysql_query (строка query [, ресурс link_identifier])

mysql_query() посылает SQL-запрос активной базе данных MySQL сервера, который определяется с помощью указателя link_identifier (это ссылка на  соединение с сервером MySQL). Если параметр link_identifier опущен, используется последнее открытое соединение. Если открытые соединения отсутствуют, функция пытается соединиться с СУБД, аналогично функции mysql_connect() без параметров. Результат запроса буферизируется.

 

 

Insert.php

<?php

$name=$_REQUEST["name_c"];

$price=$_REQUEST["price_c"];

$firma=$_REQUEST["firma_c"];

$db=mysql_connect(localhost,'root','');

mysql_select_db("Coffee");

  if ($but=insert_c)

 {$sql1="INSERT INTO name_coffee     VALUES('','$name','$price','$firma')";

 mysql_query($sql1);

}

print "Кофе $name $firma добавлено";

?>

 

poisk.php

$a=$_REQUEST["price_c"];

 {print " кофе по цене < $a  грн: <br>";    }

 

 

$conn=mysql_connect(localhost,'root','');

mysql_select_db("Coffee");

$sql="SELECT * FROM info_coffee where price=".$a;

$result=mysql_query($sql);

 

for ($i=1; $i<=mysql_num_rows($result);$i++)

{$row=mysql_fetch_object($result);

print "Кофе $row->name $row->firma стоит $row->price  грн. <br>";

}

 

 

 

Предварительно была создана форма для ввода цены кофе, которое необходимо найти:

<form action=poisk.php method=post>

введите цену <input type=text name=price_c> <br>

<input type=submit name=ok value=search>

</form>

 

Примечание. БД  и таблицы хранятся на сервере по следующему пути:

Webserver\usr\local\mysql5\data\coffee

 

Задание к работе:

1     Ознакомиться с теоретическим материалом.

2      Создать БД согласно варианту (предметную область взять из табл. 2)

3      Разработать структуру таблиц

4     Создать скрипт на php для просмотра записей таблиц, поиска по критерию, добавления информации, удаления записей и изменения информации

5     Оформить отчет согласно требованиям.

 

Таблица 2 – Индивидуальное задание

1                        

Каталог напитков

2                        

Номенклатура оборудования

3                        

Каталог медицинских препаратов

4                        

Каталог аудио дисков

5                        

Каталог продуктов питания

6                        

Каталог автомобилей

7                        

Каталог бытовых приборов

8                        

Каталог осветительных приборов

9                        

Каталог оборудования на складе

10                   

Каталог компьютерного оборудования: процессоры и материнские платы

 

Отчет должен содержать:

 

1     Название и цель работы.

2     Ход работы с детальным описанием выполненных действий с рисунками, листингом кода.

3     Экранные формы браузера с загруженными страницами.

4     Выводы о проделанной работе.

 

Вопросы для подготовки к защите работы:

1     Взаимодействия PHP и СУБД MySql

2     Как происходит установка соединения с базой данных

3     Функциям отправки запросов и обработке ответов

4     Обработка ошибок при подключении к БД


Скачано с www.znanio.ru