Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник PHP.docx
Скачиваний:
8
Добавлен:
16.08.2019
Размер:
1.01 Mб
Скачать

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

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

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

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

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

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

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

AND OR NOT

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

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

Пример 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 страниц при помощи лишь одной базы данных и двух РНР-файлов.

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

Урок 21: Удаление данных из БД

В предыдущих двух уроках вы научились вставлять и запрашивать данные из базы данных (БД). В этом уроке мы узнаем, как удалять записи из БД, что значительно проще, чем вставка данных.

Удаление данных с помощью SQL

Синтаксис SQL-оператора удаления записей таков:

DELETE FROM TableName WHERE condition

Пример: Удаление записи

При удалении записи можно использовать уникальное поле AutoNumber в базе данных. В нашей БД это столбец id. Использование этого уникального идентификатора гарантирует, что удаляется только одна запись. В следующем примере мы удаляем запись, где id имеет значение 24:

<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 = "DELETE FROM people WHERE id = 24";

mysql_query($strSQL);

// Закрыть соединение с БД

mysql_close();

?>

<h1>Запись удалена!</h1>

</body>

</html>

Помните, что не существует никакой "Recycle Bin" при работе с БД и PHP. Если вы удалили запись, то восстановить её будет невозможно.