Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
7 Мб
Скачать
☆

Организации работы с данными

Язык SQL был специально раз­работан для за­просов и получения данных из таблиц БД. Класси­ческий пример эффективного при­менения SQL-запросов - использо­вание условия WHERE в синтаксисе SQL.

<?php

$statement = "SELECT name, phone FROM samp_table";

$statement .= " WHERE id='5'";

Данный код более эффективен, чем поиск по БД с использованием PHP. C ростом БД резко па­дает скорость работы скриптов. По­лучив нужную SQL выборку, используется PHP для вывода результатов:

<?php

if (@sql_num_rows ($result) != 1) {

die ("Получено неверное количество рядов");

}

$row = @sql_fetch_array ($result);

print "Имя: $row[name]\n<br>\n";

print "Телефон: $row[phone]\n<br>\n";

?>

Для сортировки результатов рекомендуется применять синтаксис SQL ORDER BY, а не PHP-функцию ksort(). Сортировка средствами SQL намного быстрее, чем в PHP.

<?php

$statement = "SELECT name, email, phone FROM some_table ";

$statement .= "WHERE name IS LIKE '%baggins' ORDER BY name";

?>

Передача данных от клиента к серверу и обратно. Протокол http

Протокол HTTP передачи гипертекстовых данных основывается на запросах/ответах. Запрос создается браузером клиента. Когда пользователь набирает в браузере адрес: http://bsu.by:80/my.php вот что при этом происходит:

Браузер разбирает URL-адрес и решает следующее:

-Использовать протокол HTTP.

-Извлечь запрошенный ресурс с компьютера на bsu. by.

-Получить информационный ресурс, известный, как /my.php.

На основе данной информации создается запрос HTTP в следующей форме: метод запроса, URI, версия протокола, сообщение, содержащее управляющую информацию запроса, информацию о клиенте и тело сообщения. Вот так выглядит запрос(Request):

GET /my.php HTTP/1.1

Accept: image/gif, image/png, image/jpeg, */*

Accept-Language: en-us

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0;

Windows XP; .NET CLR 1.1.4322)

Host:bsu.by

Connection: Keep-Alive

Вот что эти строки значат:

GET— метод HTTP: "Дай информацию для скрипта в /mу.php, и вышли ее, используя протокол HTTP 1.1".

Accept — " понимаю графическую информацию в форматах".

Accept-Language — "язык— английский, американский ".

Accept-Encoding — " понимаю типы сжатия gzip и deflate".

User-Agent — "тип браузера — IE 8, выполняю­щийся под управлением Windows XP".

Host — "доставь информацию для скрипта /my.php компьютера на хосте bsu.by".

Connection: Keep-Alive — "держи подключение HTTP открытым, пока браузер не закроет его". Это повышает производительность, без Keep-Alive Web-страница будет иметь множество под­ключений.

Когда Web-сервер получает подобный запрос, он должен просмот­реть информацию на сервере, которая представлена для /my. php.

В конце запроса помещается его тело.

Сервер отвечает на запрос сообщением, содержащим строку статуса (включая версию протокола и код статуса - успех или ошибка), за которой следует MIME-подобное сообщение, включающее в себя информацию о сервере, метаинформацию о содержании ответа, и, само тело ответа. Ответ (response) сервера посылается клиенту (браузеру) в виде:

НТТР/1.1 200 0К

Date: Моn, 08 Dec 2012 16:46:40 GMT

Server: Apache/1.3.27 (Unix) mod_throttle/3.1.2 PHP/5.3.2

X-Powered-By: PHP/4.3.2

X-Accelerated-By: PHPA/1.3.3r2

Connection: close

Content-Type: text/html; charset=utf-8

<html lang="en-US" xml:lang="en-US" «nlns="http://www.w3.org/1999/xhtml">

<head>

<script>

HTTP-ответ состоит из двух частей. Вначале идет порция сведений о самой запрошенной информации - заголовок ответа (response header). Затем идет пустая строка и далее — сама запрошенная информация. Эта вторая часть называется телом (body). Вот что означают части заголовка:

HTTP/1.1 — первая строка сообщает клиенту, что информация будет отправлена по протоколу HTTP версии 1.1. Код 200 состояния HTTP означает: "Все хорошо, документ найден и будет отправлен".

Date — сообщает клиенту дату, установленную на сервере, с которого поступает информация. Время GMT, то есть по Гринвичу.

Server — тип сервера, предоставляющего информацию.

Connection — сообщает клиенту, что соединение будет закрыто после того, как сервер завершит отправку информации.

Content-Type — сообщает клиенту, какой тип содержимого будет отправлен. В дополнение также указывается набор символов.