- •Урок 7: Комментарии в скриптах
- •Почему комментарии так важны для ваших скриптов?
- •Как вставлять комментарии?
- •Урок 19: Вставка данных в бд
- •Вставка данных с использованием sql
- •Пример: Вставка новой персоны в таблицу
- •Сохранение пользовательского ввода в бд
- •Наиболее распространённые ошибки начинающих
- •Неверный тип данных
- •Урок 20: Получение данных из бд
- •Пример 1: Запрос данных из бд
- •Пример 2: Сортировка данных по алфавиту, хронологически или численно
- •Получение выбранных данных
- •Пример 3: Адресная книга
- •Код файла list.Php
- •Код файла person.Php
- •Урок 22: Обновление данных в бд
- •Обновление данных с помощью sql
- •Пример: Обновление ячеек в таблице "people"
Получение выбранных данных
До сих пор наш 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. Если вы удалили запись, то восстановить её будет невозможно.