Последним шагом является написание PHP-сценария, который получал бы содержимое таблицы и оформлял ее в виде HTML-таблицы. В листинге 23.3 предоставлен PHP-код, предназначенный для выборки значений имени и цены с последующим отображением их в HTML-таблице. Результат работы этого сценария показан на рис. 23.2.
Для того чтобы начать работу с базой данных, необходимо подключиться к ней, например с помощью функции mysql_connect. В качестве параметров она принимает имя узла, имя пользователя и пароль. Обычно я создаю в своих базах данных MySQL пользователя с именем httpd без какого-либо пароля. Кроме того, этот пользователь может подключиться с локального сервера. Он назван так же, как и пользователь Unix, который выполняет сценарии, - другими словами, Web-сервер. Но вы можете создавать и своих собственных пользователей и соответствующую им базу данных. Конечно, в таком случае придется внести изменения в аргументы функции.
Листинг 23.3. Создание HTML-таблицы из запроса
<?php
//подключиться к серверу и проверить на ошибку if(!($dbLink = mysql_connect("localhost", "httpd", ""))) {
print("HeB03Mo;KHO подключиться к базе данных <br>n");
print("Завершение работы!<br>n");
exit();
}
// выбрать базу данных и проверить на ошибку if(!($dbResult = mysql_query("USE test", $dbLink)))
{
print("Heвoзмoжнo использовать тестовую базу данных!<br>n");
print("Завершение работы!<br>n");
exit();
}
// получить все содержимое таблицы catalog $Query = "SELECT Name, Price " .
"FROM catalog " .
"ORDER BY Name ";
if(!($dbResult = mysql_query($Query, $dbLink)))
{
print("Heвoзмoжнo выполнить запрос!<br>n"); print("MySQL сообщает: " . mysql_error() . "<br>n"); print("Этo был запрос: $Query<br>n"); exit();
}
//start table
print("<table border="0">n"); //создать заглавную строку print("<tr>n");
print("<td bgcolor="#cccccc"><b>Тoвар</b></td>n"),•
print("<td bgcolor="#cccccc"><b>Цeна</b></td>n"),•
print("</tr>n");
// получить все строки
while($dbRow = mysql_fetch_assoc($dbResult))
{
print("<tr>n");
print("<td>{$dbRow['Name']}</td>n");
print("<td align="right">{$dbRow['Price']}</td>n"),-print("</tr>n");
}
// завершить таблицу print("</table>n");
?>
Если соединение прошло успешно, возвращается идентификатор ссылки MySQL. Следует заметить, что проверка и выполнение соединения осуществляется в одной строке. Для подключения к базе данных используется функция mysql_connect. Просмотрев описание функций MySQL в главе 17, "Базы данных", можно заметить и другую функцию - mysql_pconnect. Эти две функции работают идентично, за исключением того, что функция mysql_pconnect возвращает устойчивые соединения.
Большинство функций баз данных, которые имеются в арсенале PHP, используют идею устойчивого соединения, т.е. такого, которое не закрывается и после выполнения сценария. Если аналогичный Web-процесс запускает другой сценарий, работающий с тем же сервером базы данных, предыдущее соединение будет использоваться повторно, предотвращая перегрузку. На практике эта экономия не настолько существенна из-за того, что сервер Apache 1.3.x и более ранние его версии используют вместо потоков процессы. Процессы обслуживают определенные запросы, после чего замещаются другими процессами. Когда процесс завершается, закрывается его устойчивое соединение.
Следующим шагом является выбор базы данных. Здесь была выбрана база данных test. После того как PHP становится известно, с какой базой данных он будет работать, получаем все строки из таблицы catalog. Это сделано с помощью функции mysql_query, которая выполняет заданный запрос на заданном соединении и возвращает результирующий идентификатор. Этот результирующий идентификатор мы будем использовать в дальнейшем для выборки результатов запроса.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Интеграция баз данных. Часть Вторая.
28-05-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Интеграция баз данных | PHP. Интеграция баз данных. Часть Третья. |