ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Спонсор статьи: Хочется узнать китайский чай купить в москве. Кто где берет

Все о MySQL. Обработка результирующего набора. Продолжение.


28-12-2009

Еще одним вариантом является использование функции mysql_fetchobject() , которая выбирает строки как объекты PHP. Свойства объекта соответствуют значениям различных столбцов.
Листинг 21.22.
<html> <head>
<basefont face="Arial"> </head> <body> <?php
// задать переменные доступа к серверу $host = "localhost"; $user= "joe"; $pass = "secret";
$db = "db123";
// открыть соединение с базой данных
$connection = mysql_connect($host, $user, $pass) or die (" Невозможно подключиться!"); // выбрать базу данных
mysql_select_db($db) or die (" Невозможно выбрать рабочую базу дан­ных!");
// задать строку SQL- запроса $query = "SELECT * FROM employees";
// выполнить запрос и получить результирующий набор
$result = mysql_query ($query) or die (" Ошибка в запросе: $query. " . mysql_error ());
// содержит ли результирующий набор строки? if (mysql_num_rows($result) > 0)
{
// да
// просмотр результирующего набора // отформатировать результаты в табличном виде echo "<table cellpadding=10 border=1>"; while($row = mysql_fetch_object($result))

{

echo "<tr>";
echo "<td>" $row->uname "</td>"; echo "<td>" $row->fname "</td>"; 
echo "</tr>";
}
echo "</table>";
}
else
{
// нет
// распечатать сообщение о состоянии echo " Строк не обнаружено !";
}
// закрыть соединение mysql_close($connection);
?>
</body> </html>
Узнать еще больше о свойствах полей из результирующего набора можно с помощью функции mysql_fetch_field() , которая возвращает объект поля, содержащий подробную информацию об имени, длине и типе данных (среди прочих данных). Рассмотрим следующий пример.
Листинг 21.23.
<html> <head>
<basefont face="Arial">
</head>
<body>
<?php
// задать переменные доступа к серверу
$host = "localhost";
$user= "joe"; $pass = "secret";
$db = "db123";
// открыть соединение с базой данных
$connection = mysql_connect($host, $user, $pass) or die (" Невозможно
подключиться!");
// выбрать базу данных
mysql_select_db($db) or die (" Невозможно выбрать рабочую базу дан­ных!");
// задать строку SQL- запроса $query = "SELECT * FROM employees";
// выполнить запрос и получить результирующий набор
$result = mysql_query ($query) or die (" Ошибка в запросе: $query. " . mysql_error ());
// открыть внешний список ( для полей) echo "<ol>";
// получить список полей в результирующем наборе // и просмотреть их
for ($x=0; $x<mysql_num_fields($result); $x++)
{
// выборка каждого поля в качестве объекта
// и распечатать имя поля
$obj = mysql_fetch_field($result, $x);
echo "<li>" . $obj->name . "</li>";
// открыть внутренний список ( для свойств полей)
echo "<ul>";
// распечатать список всех свойств объектов и значений // как подчиненный список 
$vars = get_object_vars($obj); foreach ($vars as $key=>$value)
{
echo "<li>$key : $value</li>";
}
// закрыть внутренний список
echo "</ul>"; // закрыть внешний список echo "</ol>"; // закрыть соединение mysql_close($connection);
?>
</body> </html>
Как видим, функция mysql_fetch_field() принимает один аргумент, смещение поля в результирующем наборе, и возвращает разнообразную информацию, имеющую отношение к этому полю. Эта информация представляется в виде свойств объекта и может быть получена с использованием стандартной ООП-нотации, как это было в случае с предыдущей функцией mysql_fetch_object() .
Полученный предыдущим сценарием вывод представлен на рис. 21.3.
Обработка результирующего набора
 В дополнение к этим функциям, PHP также включает большое количество функций обработки результирующих наборов. Эти функции позволяют переходить к различным 
полям результирующего набора и получать информацию о количестве полученных ре­зультатов, количестве обработанных запросом строк, количестве, наименовании, типе данных полей записи и т.д. В табл. 21.1 дается перечень функций такого типа.
Объектный урок
С помощью методов print_r() и var_dump() можно "заглянуть внутрь" любого объекта PHP. Попробуйте сделать это с объектом $obj, созданным в предыдущем сценарии. Увиденное удивит вас!
Обработка результирующего набора

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Обработка результирующего набора Все о MySQL. Обработка ошибок