Получение данных при помощи 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"Либо хронологически по дате рождения:
|
|
Сортировка может выполняться по восходящей/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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!