Самоучитель по креативному веб-дизайну. Книга 4, стр.17
mysqi_fetch_array(), которая считывает результатов SQL-запроса (из фера СУБД) и помещает столбцов строки в массив Затем, сценарий может оператор echo или функцию print о для значений полей таблицы данных (из массива) на Web-страницу.
ПРАКТИК Ш
Предположим, что используется СУБД MySQL и в HTML-таблице на
Web-странице вывести данные из SQL-таблицы с именем products,
содержащейся в базе HWDTT. Прежде всего, вызов функции
mysqi connect () следующего вида:
$link = mysql ($db_host, $db_user, $db_pass) ;
$db содержит строку «locaihost» сервер MySQL выполняется в
той же системе, что и Web-сервер) или строку с IP-адресом где вы — полняется сервер MySQL, с которым установить соединение. (Для IP-адреса сервера MySQL свяжитесь с Internet-провайдером.) Осталь —
ные два параметра, $db_user и $db_pass, собой имя пользова —
теля и пароль, функции mysqi_connect() для соеди — нения с СУБД (При работе с СУБД MySQL с параметрами, установленными по умолчанию, войти в базу данных можно с именем пользо —
вателя $db_user=»root» И паролем $db_j>ass=»",)
В функции mysqi_connect () PHP-процессор присваивает соединению с
СУБД переменной $iink или значение false, если
53 2 Глава 10. РНР4
попытка установить соединение не удалась. Поскольку время от времени случа —
ются ошибки, с помощью оператора if проверьте переменной $iink, и
в случае необходимости выведите на экран сообщение об ошибке. Если попытка
установки соединения успешно, для выбора базы данных с таблица — данные которых будут считываться в запросе, воспользоваться вызо — вом функции, приведенным в следующем примере:
if (!mysql ($db_name, $link)
{
//Операторы, случай неудавшейся попытки использования
//базы данных
}
else
{
//Обработка успешной установки соединения и выбора базы данных
}
Сервер как правило, поддерживает баз данных, поэтому вы должны базу данных, содержащую данными которых вы хотите
пользоваться. В приведенном $db name содержит строку «HWDTT», a
$iin k — идентификатор соединения с базой сгенерированный успеш —
но выполненной mysqi_connect(). Как и ранее, необходимо про —
верить данные, возвращаемые PHP-функцией (в данном примере функцией
mysqi seiect_db()), убедиться, что выбор данных был выполнен ус —
пешно. Функция mysqi_seiect_db() возвращает tru e при выборе базы данных и fals e — в противном случае.
После успешной установки соединения с СУБД MySQL и выбора дан — ных для запроса (или любого оператора SQL) вызовите фун —
кцию mysqi query как показано в следующем примере:
$resul t = mysql ($query, $link) ;
В приведенном примере, в котором содержимое таблицы
products, параметр СОДерЖИТ SQL-ОПераТОр SELECT * FROM product s
ORDER BY description. Как и ранее, $iink содержит идентификатор
соединения с базой возвращенный успешно выполненной функцией
mysqi_connect (), вызов которой находится в начале сценария. Функция
mysqi_query () возвращает fals e (если СУБД по какой-то причине не смогла выполнить переданный ей SQL-оператор) или указатель на место, СУБД поместила результаты выполнения запроса.
Для считывания запроса (т. е. строк которые запрос
выбрал из таблицы несколько раз вызовите функцию
mysqi fetch_array о для всех строк результатов запроса и сохране — ния их в массиве. выведите данные из массива на Web-страницу. мер, следующий сценарий количество полей (возвращенных в резуль — татах запроса), их имена и типы, и выводит столбцов, содержащихся в результатах запроса, в виде которую сценарий создает на Web — странице:
Глава10.РНР4 533
// Определить полей, возвращенных в результатах запроса
$fields = mysql_num fields ($result) ;
// Начать определение HTML-таблицы
echo «»;
// Вывести на экран названия столбцов в виде заголовков HTML-таблицы
echo «
for ($i = 0; $i
{
echo «» . mysql fieldjiame($result, $i) . «»;
$fieldType[$i] = mysql_field type($result, $i) ;
}
echo «
«;
// Вывести в HTML-таблице результаты запроса
while
{
echo «
for ($i = 0; $i
{
if ($fieldType[$i] <> «string»)
«
els e
echo «
echo «$array[$i]
«;
}
echo «
«;
}
echo «» ;
Полный PHP-сценария, описанного в этом совете, находится на странице
которую можно выгрузить из сайта издательства русскоязыч —
ной редакции КНИГИ (http://www. diasoft. kiev. ua). Изменяя ИНформа — цию о соединении и SQL-запрос, вы имеете использовать этот сце —
для считывания и вывода на экран в виде HTML-таблицы результатов
любого запроса. Сценарий выводит на экран столбцов, возвращенных запросом, в виде столбцов таблицы, а сами запроса поме —
щаются в строки таблицы.
Использование для генерации случайного пароля
При создании Web-сайта с доступом для зарегистрированных членов необходимо гарантировать, что сайта используют пароли, которые
не могут угаданы неавторизированными пользователями. люди стремятся выбирать запоминающиеся пароли, они выбирают имена своих или друзей, памятные прозвища или фразы, которые

