Привет, Гость!
home login register
[+] Купить Рекламу
Хостинг для тебя! Заходи не пожалеешь
Что мы делаем полезного на официальном сайте WAP-поддержки? Подробно ...
Вступайте в нашу группу ВКОНТАКТЕ
Поздравляем, новичка с ID:1000
Как самомусделать QR-код
IT новости: в Windows новая опасная уязвимость
Проблемы восприятия IT
Как подтвердить авторство в Google

Учебник PHP #11
<< 1 2 3 4 5 6 ... 9 >>
ошибкой. При выполнении команды DELETE без секции WHEREmysql_affected_rows( ) всегда возвращает 0.

mysql_num_rows( )

Функция mysql_num_rows( ) определяет количество записей, возвращаемых командой SELECT. Синтаксис функции mysql_num_rows( ):

int mysql_num_rows(int результат)

Пример использования mysql_num_rows( ):

<?

// Подключиться к серверу и выбрать базу данных @mysql_connect("localhost", "web", "4tf9zzzf")

or die("Could not connect to MySQL server!");

@mysql_select_db("company") or die("Could not select company database!");

// Выбрать все товары, названия которых начинаются с 'р'

$query = "SELECT prod_name FROM products WHERE prod_name LIKE \"p*\"";

// Выполнить запрос $result = mysql_query($query);

print "Total rows selected: ".mysql_num_rows($result);

mysql_close( );

?>

Поскольку таблица содержит лишь один товар, название которого начинается с буквы р (pears), возвращается только одна запись. Результат:

Total rows selected: 1

mysql_result( )

Функция mysql_result() используется в сочетании с mysql_query( ) (при выполнении запроса с командой SELECT) для получения набора данных. Синтаксис функции mysql_resu1t():

int mysql_result (int идентификатор_результата, int запись [. mixed поле"]')

В параметре идентификатор_результата передается значение, возвращенное функцией mysql_query( ). Параметр запись ссылается на определенную запись набора данных, определяемого параметром идентификатор_результата. Наконец, в необязательном параметре поле могут передаваться:

смещение поля в таблице;
имя поля;
имя поля в формате имя_поля_имя_тдблицы.

В листинге 11.1 используется база данных, изображенная на рис. 11.1.

Листинг 11.1. Выборка и форматирование данных в базе данных MySQL

<?

@mysql_connect("localhost", "web", "ffttss")

or die("Could not connect to MySQL server!");

@mysql_select_db("company")

or die("Could not select products database!");

// Выбрать все записи из таблицы products

$query = "SELECT * FROM products"; $result = mysql_query($query);

$x = 0;

print "<table>\n";

print "<tr>\n<th>Product ID</th><th>Product Name</th><th>Product Price</th>\n</tr>\n";

while ($x < mysql_numrows($result)) :

$id = mysql_result($result. $x. 'prod_id');

$name = mysql_result($result, $x, 'prod_name');

$price = mysql_result($result. $x, 'prod_price');

print "<tr>\n";

print "<td>$id</td>\n<td>$name</td>\n<td>$price</td>\n";

print "</tr>\n";

$x++;

endwhile;

print "</table>";

mysql_close();

?>

В результате выполнения этого примера с данными, изображенными на рис. 11.1, будет получен следующий результат:

Листинг 11.2. Результат выполнения листинга 11.1

<table>

<tr>

<th>Product ID</th><th>Product Name</th><th>Product Price</th>

</tr>

<tr>

<td>1000pr</td>

<td>apples</td>

<td>1.23</td>

</tr>

<tr>

<td>1001pr</td>

<td>oranges</td>

<td>2.34</td>

</tr>

<tr>

<td>1002pr</td>

<td>bananas</td>

<td>3.45</td>

</tr>

<tr>

<td>1003pr</td>

<td>pears</td>

<td>4.45</td>

</tr>

</table>

Функция mysql_result( ) удобна для работы с относительно небольшими наборами данных, однако существуют и другие функции, работающие намного эффективнее, — а именно, функции mysql_fetch_row( ) и mysql_fetch_array( ). Эти функции описаны в следующих разделах.

mysql_fetch_row()

Обычно гораздо удобнее сразу присвоить значения всех полей записи элементам индексируемого массива (начиная с индекса 0), нежели многократно вызывать mysql_result( ) для получения отдельных полей. Задача решается функцией mysql_fetch_row( ), имеющей следующий синтаксис:

array mysql_fetch_row (int результат)

Использование функции list( ) в сочетании с mysql_fetch_row( ) позволяет сэкономить несколько команд, необходимых при использовании mysql_result( ). В листинге 11.3 приведен код листинга 11.1, переписанный с использованием list( ) и mysql_fetch_row( ).

Листинг 11.3. Выборка данных функцией mysql_fetch_row( ) <?

@mysql_connect( "localhost", "web", "ffttss") or die("Could not connect to MySQL server!");

@mysql_select_db("company") or die("Could not select products database!");

$query = "SELECT * FROM products";

$result = mysql_query($query);

print "<table>\n";

print "<tr>\n<th>Product ID</th><th>Product Name</th><th>

Product Price</th>\n</tr>\n";

while ($row = mysql_fetch_array($result)) :

print "<tr>\n":

print "<td>".$row["prod_id"]."</td>\n<td>".$row["prod_name"]."

</td>\n<td>" .$row["prod_price"]. "</td>\n";

print "</tr>\n";

endwhile;

print "</table>";

mysql_close();

?>

Листинг 11.3 выдает тот же результат, что и листинг 11.1, но использует при этом меньшее количество команд.

my sq l_f etch_array ( )

Функция mysql_fetch_array( ) аналогична mysql_fetch_row( ), однако по умолчанию значения полей записи сохраняются в ассоциативном массиве. Впрочем, вы можете выбрать тип индексации (ассоциативная, числовая или комбинированная). Синтаксис функции mysql_fetch_array( ):

array mysql_fetch_array (int идентификатор результата [, тип_индексации])

В параметре идентификатор_результата передается значение, возвращенное функцией mysql_query( ). Необязательный параметр тип_индексации принимает одно из следующих значений:

MYSQL_ASSOC — функция mysql_fetch_array( ) возвращает ассоциативный массив. Если параметр не указан, это значение используется по умолчанию;
MYSQL_NUM — функция mysql_fetch_array( ) возвращает массив с числовой индексацией;
MYSQL_BOTH — к полям возвращаемой записи можно обращаться как по числовым, так и по ассоциативным индексам.

Листинг 11.4 содержит очередной вариант кода листингов 11.1 и 11.3. На этот раз используется функция mysql_fetch_array( ), возвращающая ассоциативный массив полей.

Листинг 11.4. Выборка данных функцией mysql_fetch_array( )

<?

@mysql_connect( "local host", "web", "ffttss")

or die("Could not connect to MySQL server!");

@mysql_select_db( "company" )

or die("Could not select products database!");

$query = "SELECT * FROM products";

$result = mysql_query($query);

"<table>\n";

print "<tr>\n<th>Product ID</th><th>Product Name</th> <th>Product Price</th>\n</tr>\n";

while ($row = mysql_fetch_array($result)) ;

print "<tr>\n";

print "<td>".$row["prod_id"]."</td>\n <td>".$row["prod_name"]."</td>\n <td>" . $row["prod_price"] . "</td>\n" ;

print "</tr>\n";

endwhile;

print "</table>";

mysql_close();

?>

Листинг 11.4 выдает тот же результат, что и листинги 11.1 и 11.3.

Того, что сейчас вы знаете о функциональных возможностях MySQL в РНР, вполне достаточно, чтобы заняться созданием довольно интересных приложений. Первое приложение, которое мы рассмотрим, представляет собой простейшую поисковую систему. Этот пример демонстрирует применение форм HTML (см. предыдущую главу) для получения данных, которые в дальнейшем используются для выборки информации из базы.

Простейшая
Комментарии (0)
<< 1 2 3 4 5 6 ... 9 >>
Скачать Java книгу

»php/mysql/pdo/js
В библиотеку

На главную

Сообщество wap разработчиков I HwapCMS официальный сайт поддержки


RSS-лента
Генерация: 0.019 сек.