<body>

<h1>Подключение к базе данных</h1>

<?php

//Соединяемся с сервером MySQL

$connection = mysql_connect(«localhost»,»username»,»userpassword»);

if(! $connection) die(“Ошибка доступа к базе данных.

Приносим свои извинения”);

//Выбираем базу данных SalesDept (Отдел продаж)

if(!mysql_select_db(«SalesDept»))

die(“База данных отсутствует. Приносим свои извинения”);

print(“База данных выбрана успешно”);

?>

</body>

После обновления страницы http://localhost/output.php вы увидите либо сообщение «Операция выполнена успешно», либо сообщение «База данных отсутствует. Приносим свои извинения». В последнем случае необходимо проверить, существует ли база данных с таким именем на сервере MySQL и есть ли у пользователя username право доступа к этой базе.

После подключения к серверу MySQL и выбора текущей базы данных можно приступать к работе с данными. В первую очередь необходимо установить кодировку, чтобы избежать проблем с отображением символов русского алфавита. Как мы знаем из главы 2, указать серверу кодировку, которую использует клиентское приложение, можно с помощью команды SET NAMES <Кодировка>;.

Файл output.php мы сохранили в кодировке Windows (CP- 1251), поэтому именно ее и нужно установить.

Для отправки SQL-команды на сервер MySQL используется функция

mysql_query(«<Текст команды>»[, <Указатель на соединение>]);

Добавьте в сценарий output.php вызов этой функции (листинг 4.3). Листинг 4.3. Установка кодировки

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<h1>Подключение к базе данных</h1>

<?php

//Соединяемся с сервером MySQL

$connection = mysql_connect(«localhost»,»username»,»userpassword»);

if(! $connection) die(“Ошибка доступа к базе данных.

Приносим свои извинения”);

//Выбираем базу данных SalesDept (Отдел продаж)

if(!mysql_select_db(«SalesDept»))

die (“База данных отсутствует. Приносим свои извинения”);

//Устанавливаем кодировку CP-1251

mysql_query(“SET NAMES cp1251”);

print(“Операция выполнена успешно”);

?>

</body>

В следующем подразделе вы узнаете о том, как получить необходимую информацию из базы данных.

Выполнение запроса к базе данных

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

Как было упомянуто выше, для выполнения SQL-команды PHP-приложением предназначена функция

mysql_query(«<Текст команды>»[, <Указатель на соединение>])

Если SQL-команда предполагает получение информации из базы данных, то функция mysql_query() возвращает указатель на полученный массив данных (либо значение FALSE, если при выполнении запроса произошла ошибка). После того как запрос выполнен, извлечь из полученного массива конкретные значения можно с помощью функции

mysql_fetch_assoc(<Указатель на результат запроса>)

или

mysql_fetch_array(<Указатель результат запроса>)

Функция mysql_fetch_assoc() получает очередную строку из результата запроса и возвращает ее в виде ассоциативного массива. Иными словами, вы получаете возможность работать со значениями в строке, используя для доступа к ним названия столбцов.

Проиллюстрируем работу этой функции на примере вывода списка товаров, то есть данных из таблицы Products (Товары). Добавим в сценарий output.php вызов функций mysql_query() и mysql_fetch_assoc() (листинг 4.4).

Листинг 4.4. Получение информации и отображение ее на странице

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<h1>Список товаров</h1>

<!– Выводим список товаров –>

<table>

<!– Выводим заголовок списка товаров –>

<tr>

<th>Наименование</th>

<th>Описание</th>

<th>Цена</th>

</tr>

<?php

//Соединяемся с сервером MySQL

$connection = mysql_connect («localhost»,»username»,»userpassword»);

if(!$connection) die(“Ошибка доступа к базе данных.

Приносим свои извинения”);

//Выбираем базу данных SalesDept (Отдел продаж)

if(!mysql_select_db(«SalesDept»))

die (“База данных отсутствует. Приносим свои извинения”);

//Устанавливаем кодировку CP-1251

mysql_query(“SET NAMES cp1251”);

//Получаем список товаров

$qresult = mysql_query(«SELECT * FROM Products»);

if(!$qresult) die(“Ошибка доступа к базе данных.

Приносим свои извинения”);

//Очередную строку из результата запроса (информацию о товаре)

// записываем в ассоциативный массив $product

while ($product=mysql_fetch_assoc($qresult))

{

//выводим элементы массива $product с именами description (наименование), //

details (описание) и price (цена)

print « <tr><td>{$product [«description»]}</td>

<td>{$product [«details»]}</td>

<td>{$product[«price»]} </td></tr> »;

}

?>

</table>

</body>

В этом примере функция mysql_query() выполняет запрос SELECT * FROM Products;, а функция mysql_fetch_assoc() в цикле while преобразует каждую из строк, полученных запросом, в массив $product. Затем мы извлекаем элементы массива $product с именами description (наименование), details (описание) и price (цена), что соответствует значениям в столбцах description, details и price таблицы Products (Товары).

После обновления страницы http://localhost/output.php вы увидите следующий результат (рис. 4.11).

Рис. 4.11. Отображение полученной информации на странице

Полезно также изучить HTML-код этой страницы (в Internet Explorer для этого нужно нажать кнопку Страница и в появившемся меню выбрать пункт Просмотр HTML-кода). Вы увидите результат работы цикла while и, в частности, значения элементов массива (рис. 4.12).

Рис. 4.12. HTML-код страницы

В некоторых случаях вместо названий элементов массива удобнее использовать числовые индексы.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату