Как сделать запрос из базы данных


Лучшие новости сайта

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Теперь настало время запросить данные из нашей БД для наших PHP-страниц.

Это один из наиболее важных уроков данного учебника. Когда вы прочтёте и разберёте этот урок, вы поймёте, почему вэб-решения на основе БД настолько мощны, и ваше представление о вэб-разработке значительно расширится.

SQL-запросы

Для получения данных из БД вы используете запросы. Примером запроса может быть: "получить данные из таблицы 'people', отсортированные по алфавиту" или "получить имена из таблицы 'people'".

Напоминаем, что язык Structured Query Language (SQL) используется для общения с БД. Посмотрим на простой пример:

Получить все данные из таблицы 'people'

В SQL мы запишем:

SELECT FROM people

Синтаксис говорит сам за себя. Просто читайте и смотрите, как используются SQL-операторы в следующих примерах.

Пример 1: Запрос данных из БД

Этот пример использует БД и таблицу из и . Следовательно, прочтите сначала эти уроки.

Данный пример показывает, как данные из таблицы "people" запрашиваются с помощью SQL-запроса.

Этот SQL-запрос возвращает результат в виде серии записей/records. Эти записи хранятся в так называемом наборе Записей/recordset. Набор записей можно охарактеризовать как род таблицы в памяти сервера, содержащей данные (записи), и каждая запись подразделяется на отдельные поля (или столбцы).

Набор данных можно сравнить с таблицей, где каждая запись аналогична ряду таблицы. В PHP мы может пройти по набору записей с помощью циклов и функции документацияmysql_fetch_array, которая возвратит каждый ряд в виде массива.

Следующий код показывает, как использовать документацияmysql_fetch_array для прохода по набору записей:

<html> <head> <title>Запрос данных из таблицы</title> </head> <body> <?php // Соединиться с сервером БД mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ()); // Выбрать БД mysql_select_db("mydatabase") or die(mysql_error()); // SQL-запрос $strSQL = "SELECT FROM people"; // Выполнить запрос (набор данных $rs содержит результат) $rs = mysql_query($strSQL); // Цикл по recordset $rs // Каждый ряд становится массивом ($row) с помощью функции mysql_fetch_array while($row = mysql_fetch_array($rs)) { // Записать значение столбца FirstName (который является теперь массивом $row) echo $row['FirstName'] . "<br />"; } // Закрыть соединение с БД mysql_close(); ?> </body> </html>

Обратите внимание, как для каждой записи мы получаем содержимое столбца "FirstName", печатая $row['FirstName']. Аналогично мы можем получить содержимое столбца "Phone", печатая $row['Phone'], к примеру.

Порядок набора записей точно такой же, как в таблице в БД. Но в следующем уроке мы посмотрим, как сортировать набор записей.

Пример 2: Сортировка данных по алфавиту, хронологически или численно

Часто бывает удобно, когда список или таблица представлены в алфавитном порядке, хронологически или численно. Такая сортировка легко выполняется в SQL, и синтаксис Order By ColumnName используется для сортировки содержимого столбцов.

Возьмём SQL-оператор из предыдущего примера:

strSQL = "SELECT FROM people"

Запись может, например, быть отсортирована в алфавитном порядке по первому имени людей:

strSQL = "SELECT FROM people ORDER BY FirstName"

Либо хронологически по дате рождения:

strSQL = "SELECT FROM people ORDER BY BirthDate"

Сортировка может выполняться по восходящей/ascending или по нисходящей/descending, добавлением DESC:

strSQL = "SELECT FROM people ORDER BY BirthDate DESC"

В следующем примере люди сортируются по возрасту:

<html> <head> <title>Запросить данные из БД</title> </head> <body> <?php // Соединиться с сервером БД mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ()); // Выбрать БД mysql_select_db("mydatabase") or die(mysql_error()); // SQL-запрос $strSQL = "SELECT FROM people ORDER BY BirthDate DESC"; // Выполнить запрос (набор записей $rs содержит результат) $rs = mysql_query($strSQL); // Цикл по набору записей $rs while($row = mysql_fetch_array($rs)) { // Записать значение столбцов FirstName и BirthDate echo $row['FirstName'] . " " . $row['BirthDate'] . "<br />"; } // Закрыть соединение с БД mysql_close(); ?> </body> </html>

Попробуйте самостоятельно изменить этот SQL-оператор и отсортировать записи по имени, фамилии или номеру телефона.

Получение выбранных данных

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

Скажем, мы хотим запросить из БД людей, имеющих номер телефона "66554433". Это можно сделать так:

strSQL = "SELECT FROM people WHERE Phone = '66554433 '"

В SQL имеется шесть операций сравнения:

= равно
< меньше
> больше
<= меньше или равно
> = больше или равно
!= не равно

Кроме того, имеются логические операции:

AND
OR
NOT

См. в о настройке условий.

В следующем примере мы используем условия для настройки адресной книги.

Пример 3: Адресная книга

В этом примере мы попытаемся скомбинировать многое из уже изученного. Создадим список имён из БД, где каждое имя будет ссылкой на последующую детальную информацию о человеке.

Для этого понадобятся два файла - list.php и person.php - с таким кодом:

Код файла list.php

<html> <head> <title>Запросить данные из БД</title> </head> <body> <ul> <?php // Соединиться с сервером БД mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ()); // Выбрать БД mysql_select_db("mydatabase") or die(mysql_error()); // SQL-запрос $strSQL = "SELECT FROM people ORDER BY FirstName DESC"; // Выполнить запрос (набор данных $rs содержит результат) $rs = mysql_query($strSQL); // Цикл по $rs while($row = mysql_fetch_array($rs)) { // Иям человека $strName = $row['FirstName'] . " " . $row['LastName']; // Создать ссылку на person.php с id-value в URL $strLink = "<a href = 'person.php?id = " . $row['id'] . "'>" . $strNavn . "</a>"; // Листинг ссылок echo "<li>" . $strLink . "</li>"; } // Закрыть соединение с БД mysql_close(); ?> </ul> </body> </html>

Код файла person.php

<html> <head> <title>Запросить данные из БД</title> </head> <body> <dl> <?php // Соединиться с сервером БД mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ()); // Выбрать БД mysql_select_db("mydatabase") or die(mysql_error()); // Получить данные из БД, в зависимости от значения id в URL $strSQL = "SELECT FROM people WHERE id=" . $_GET["id"]; $rs = mysql_query($strSQL); // Цикл по $rs while($row = mysql_fetch_array($rs)) { // Записать данные человека echo "<dt>Name:</dt><dd>" . $row["FirstName"] . " " . $row["LastName"] . "</dd>"; echo "<dt>Phone:</dt><dd>" . $row["Phone"] . "</dd>"; echo "<dt>Birthdate:</dt><dd>" . $row["BirthDate"] . "</dd>"; } // Закрыть соединение с БД mysql_close(); ?> </dl> <p><a href="list.php">Return to the list</a></p> </body> </html>

Пример с адресной книгой достаточно прост, но показывает потенциал возможностей при работе с РНР и базами данных.

Представьте, что БД содержит 10,000 продуктов с детальным описанием. Сделав небольшие изменения в предыдущие файлы, вы легко создадите каталог продукции с более чем 10,000 страниц при помощи лишь одной базы данных и двух РНР-файлов.

Добро пожаловать в мир огромных вэб-сайтов, которые легко разрабатывать и обслуживать! Если вы освоили работу с БД, ваши вэб-решения уже никогда не будут прежними.


Источник: http://ru.html.net/tutorials/php/lesson20.php



Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных

Как сделать запрос из базы данных