Получение данных при помощи SQL-запроов



Для работы с базой в MySQL необходим файл, в котором содержатся параметры для доступа к базе данных в следующем виде.

<?php

$dblocation="localhost"; //имя сервера

$dbname="Spravochnik";//имя БД

$dbuser="root";//имя пользователя

$dbpasswd="";//пароль пользователя

$pnumber=30;

$dbcnx=@mysql_connect($dblocation,$dbuser,$dbpasswd);

//  функция mysql_connect устанавливает соединение с сервером, который задается переменной $dblocation;

// проверка данных для соединения

if (!$dbcnx) {

   echo "сервер БД недоступен";

   exit();

}

@mysql_select_db($dbname,$dbcnx);// функция выбирает базу данных для дальнейшей работы;

if (!@mysql_select_db($dbname,$dbcnx))

{

   echo "сервер БД недоступен";

   exit();

}

// вывод сообщения об ошибке

function puterror ($message)

{

   echo("<p>$mesagge</p>");

   exit();

}

?>

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-запроса для выборки данных, например необходимо запросить из БД людей, имеющих номер телефона "66554433":

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

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

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

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

AND
OR
NOT


Дата добавления: 2018-02-18; просмотров: 644; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!