После обновления страницы http://localhost/output.php вы увидите либо сообщение «Операция выполнена успешно», либо сообщение «База данных отсутствует. Приносим свои извинения». В последнем случае необходимо проверить, существует ли база данных с таким именем на сервере MySQL и есть ли у пользователя username право доступа к этой базе.
После подключения к серверу MySQL и выбора текущей базы данных можно приступать к работе с данными. В первую очередь необходимо установить кодировку, чтобы избежать проблем с отображением символов русского алфавита. Как мы знаем из главы 2, указать серверу кодировку, которую использует клиентское приложение, можно с помощью команды SET NAMES <Кодировка>;.
Файл output.php мы сохранили в кодировке Windows (CP- 1251), поэтому именно ее и нужно установить.
Для отправки SQL-команды на сервер MySQL используется функцияДобавьте в сценарий output.php вызов этой функции (листинг 4.3). Листинг 4.3. Установка кодировки
В следующем подразделе вы узнаете о том, как получить необходимую информацию из базы данных.
Выполнение запроса к базе данных
В данном подразделе описывается, как создать PHP- сценарий, формирующий динамическую веб-страницу на основе данных, полученных из базы.
Как было упомянуто выше, для выполнения SQL-команды PHP-приложением предназначена функцияЕсли SQL-команда предполагает получение информации из базы данных, то функция mysql_query() возвращает указатель на полученный массив данных (либо значение FALSE, если при выполнении запроса произошла ошибка). После того как запрос выполнен, извлечь из полученного массива конкретные значения можно с помощью функции
или
Функция mysql_fetch_assoc() получает очередную строку из результата запроса и возвращает ее в виде ассоциативного массива. Иными словами, вы получаете возможность работать со значениями в строке, используя для доступа к ним названия столбцов.
Проиллюстрируем работу этой функции на примере вывода списка товаров, то есть данных из таблицы Products (Товары). Добавим в сценарий output.php вызов функций mysql_query() и mysql_fetch_assoc() (листинг 4.4).
Листинг 4.4. Получение информации и отображение ее на страницеВ этом примере функция 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-код страницыВ некоторых случаях вместо названий элементов массива удобнее использовать числовые индексы.