Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«MySQL 5.0. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 32

Автор Π’ΠΈΠΊΡ‚ΠΎΡ€ Π“ΠΎΠ»ΡŒΡ†ΠΌΠ°Π½

ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния”);

//ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ строку ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° запроса (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅)

// записываСм Π² ассоциативный массив $product

while ($product=mysql_fetch_assoc($qresult))

{

//Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнты массива $product с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ description (Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅), //

details (описаниС) ΠΈ price (Ρ†Π΅Π½Π°)

print Β«\n<tr><td>{$product[Β«descriptionΒ»]}</td>

<td>{$product[Β«detailsΒ»]}</td>

<td>{$product[Β«priceΒ»]}</td></tr>\nΒ»;

}

?>

</table>

</body>

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция 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-ΠΊΠΎΠ΄ страницы

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях вмСсто Π½Π°Π·Π²Π°Π½ΠΈΠΉ элСмСнтов массива ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ числовыС индСксы. НапримСр, Ссли Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запроса ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ нСсколько столбцов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ (это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² случаС получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†), Ρ‚ΠΎ функция mysql_fetch_assoc() прСдоставляСт доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ послСднСму ΠΈΠ· этих столбцов. Π˜Π·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого позволяСт функция mysql_fetch_array().

Ѐункция mysql_fetch_array() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ассоциативный массив, Ρ‚Π°ΠΊ ΠΈ массив с числовыми индСксами. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, хранящСмуся Π² строкС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΠΈΠ±ΠΎ имя столбца, Π»ΠΈΠ±ΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€ столбца Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запроса. НапримСр, ΠΊΠΎΠ΄, прСдставлСнный Π² листингС 4.4, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (листинг 4.5).

Листинг 4.5. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΅Π΅ Π½Π° страницС

<html>

<head>

<title>Π Π°Π±ΠΎΡ‚Π° с MySQL</title>

</head>

<body>

<h1>Бписок Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²</h1>

<!– Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² –>

<table>

<!– Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ списка Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² –>

<tr>

<th>НаимСнованиС</th>

<th>ОписаниС</th>

<th>Π¦Π΅Π½Π°</th>

</tr>

<?php

//БоСдиняСмся с сСрвСром MySQL

$connection = mysql_connect(Β«localhostΒ»,Β»usernameΒ»,Β»userpasswordΒ»);

if(!$connection) die(β€œΠžΡˆΠΈΠ±ΠΊΠ° доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния”);

//Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… SalesDept (ΠžΡ‚Π΄Π΅Π» ΠΏΡ€ΠΎΠ΄Π°ΠΆ)

if(!mysql_select_db(Β«SalesDeptΒ»))

die(β€œΠ‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… отсутствуСт. ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния”);

//УстанавливаСм ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ CP-1251

mysql_query(β€œSET NAMES cp1251”);

//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

$qresult = mysql_query(Β«SELECT * FROM ProductsΒ»);

if(!$qresult) die(β€œΠžΡˆΠΈΠ±ΠΊΠ° доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния”);

//ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ строку ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° запроса (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅)

// записываСм Π² массив $product

while ($product=mysql_fetch_array($qresult))

{

//Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнты массива $product с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ 1, 2, 3

print Β«\n<tr><td>{$product[1]}</td>

<td>{$product[2]}</td>

<td>{$product[3]}</td></tr>\nΒ»;

}

?>

</table>

</body>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния прилоТСния ΠΏΡ€ΠΈ этом Π½Π΅ измСнится.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ рассмотрСли Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π±Π°Π·Ρ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Однако ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ошибок. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ эти ошибки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½ΠΈΡ…. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим этот вопрос ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

Для получСния свСдСний ΠΎ возникшСй ошибкС взаимодСйствия с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

mysql_error([<Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° соСдинСниС>])

ΠΈ

mysql_errno([<Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° соСдинСниС>])

Ѐункция mysql_error() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ описаниС ошибки, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ послСднСй SQL-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΈΠ»ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ строку, Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ). Ѐункция mysql_errno() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ошибки, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ послСднСй SQL-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΈΠ»ΠΈ 0, Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ).

ЗначСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ функциями mysql_error() ΠΈ mysql_errno(), ΠΊΠ°ΠΊ ΠΈ систСмныС сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π²Π΅Π±-страницС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ прилоТСния. ВмСсто этого рСкомСндуСтся Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ свСдСния ΠΎΠ± ошибкС Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡ‹Π»Π°Ρ‚ΡŒ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΈΠ»ΠΈ администратору прилоТСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ систСмных сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠ΄ прилоТСния Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

error_reporting(0)

Π’ случаС возникновСния ошибки сформируСм собствСнноС сообщСниС, содСрТащСС Π΄Π°Ρ‚Ρƒ ΠΈ врСмя, Π½ΠΎΠΌΠ΅Ρ€ ΠΈ описаниС ошибки. Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это сообщСниС Π² log-Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ позволяСт функция

error_log(Β«<ВСкст сообщСния>Β», <Π’ΠΈΠΏ сообщСния>,Β»<АдрСс доставки>Β»)

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сцСнарий output.php ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок (листинг 4.6). Листинг 4.6. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

<html>

<head>

<title>Π Π°Π±ΠΎΡ‚Π° с MySQL</title>

</head>

<body>

<h1>Бписок Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²</h1>

<!– Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² –>

<table>

<!– Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ списка Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² –>

<tr>

<th>НаимСнованиС</th>

<th>ОписаниС</th>

<th>Π¦Π΅Π½Π°</th>

</tr>

<?php

//ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ систСмных сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

error_reporting(0);

//БоСдиняСмся с сСрвСром MySQL

$connection = mysql_connect(Β«localhostΒ»,Β»usernameΒ»,Β»userpasswordΒ»);

if(!$connection) die(β€œΠžΡˆΠΈΠ±ΠΊΠ° доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния”);

//Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… SalesDept (ΠžΡ‚Π΄Π΅Π» ΠΏΡ€ΠΎΠ΄Π°ΠΆ)

//Π’ случаС ошибки Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ сообщСниС, записываСм Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ»

//ΠΈ отправляСм ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅

if(!mysql_select_db(β€œSalesDept”))

{

$err_message=date(Β«Y.m.d H:i:sΒ»).Β»

Β«.mysql_errno().Β» Β«.mysql_error().Β»\r\nΒ»;

error_log($err_message,3,Β»/mysqlerror.logΒ»);

error_log($err_message,1,Β» [email protected]Β»);

die(β€œΠžΡˆΠΈΠ±ΠΊΠ° доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния”);

}

//УстанавливаСм ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ CP-1251

mysql_query(Β«SET NAMES cp1251Β»);

//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

$qresult = mysql_query(Β«SELECT * FROM ProductsΒ»);

//ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния запроса; Π² ΡΠ»ΡƒΡ‡Π°Π΅ ошибки Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ //

сообщСниС, записываСм Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» ΠΈ отправляСм ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅

if(!$qresult)

{

$err_message=date(Β«Y.m.d H:i:sΒ»).Β»

Β«.mysql_errno().Β» Β«.mysql_error().Β»\r\nΒ»;

error_log($err_message,3,Β»/mysqlerror.logΒ»);

error_log($err_message,1,Β» [email protected]Β»);

die(β€œΠžΡˆΠΈΠ±ΠΊΠ° доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния”);

}

//ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ строку ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° запроса (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅)

// записываСм Π² ассоциативный массив $product

while ($product=mysql_fetch_assoc($qresult))

{

//Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ элСмСнты массива $product с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ description (Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅), //

details (описаниС) ΠΈ price (Ρ†Π΅Π½Π°)

print Β«\n<tr><td>{$product[Β«descriptionΒ»]}</td>

<td>{$product[Β«detailsΒ»]}</td>

<td>{$product[Β«priceΒ»]}</td></tr>\nΒ»;

}

?>

</table>

</body>

Если ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запроса ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ окаТСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° Products (Π’ΠΎΠ²Π°Ρ€Ρ‹) Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π°, Ρ‚ΠΎ сообщСниС Π²ΠΈΠ΄Π° 2008.06.15 14:22:53 1146 Table \'salesdept.products\' doesn\'t exist Π±ΡƒΠ΄Π΅Ρ‚ записано Π² Ρ„Π°ΠΉΠ» mysqlerror.log, находящийся Π² ΠΏΠ°ΠΏΠΊΠ΅ htdocs ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ XAMPP, ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π° адрСс [email protected] (Ρ‚ΠΈΠΏ сообщСния 3 соотвСтствуСт записи Π² Ρ„Π°ΠΉΠ», Ρ‚ΠΈΠΏ 1 – ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅). На Π²Π΅Π±-страницС ΠΏΡ€ΠΈ этом отобразится Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ сообщСниС: «Ошибка доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠ½ΠΎΡΠΈΠΌ свои извинСния».

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ созданиС прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ записываСт Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Π΅, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° вСбстраницС.