Совершенно очевидно, что если ваша система позволяет пользователям добавлять записи, он должна разрешать им удалять их. Эта задача следующего сценария. Он демонстрирует удаление записей, используя в качестве ключа имя пользователя. И опять-таки, основные принципы остаются прежними, меняется только строка запроса.
Листинг 21.29.
<html> <head>
<basefont face "Arial">
</head>
<body>
<center>
<?php
// форма была введена? // нет
if (!$_POST['submit']) {
?>
<113>Введите имя пользователя :</h3>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table> <tr>
<td>Имя пользователя</td>
<td><input name="uname" length="10" maxlength="30"></td>
</tr>
<tr>
<td>Название Web-узла</td>
<td><input name="label" length="30" maxlength="30"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Submit">
</td>
</tr> </table> </form> <?php
}
// да
else
{
// присвоить данные, полученные методом POST, обычным переменным
PHP
$uname = $_POST['uname'];
// проверить все данные для того, чтобы убедиться в том,
// что они имеют правильный тип
if (empty($uname)) { die("Ошибка в поле USERNAME!"); }
// задать переменные доступа к серверу
$host = "localhost";
$user= "joe"; $pass = "secret"; $db = "db123";
// открыть соединение с базой данных
$connection = mysql_connect($host, $user, $pass) or die ("Невозможно подключиться!"); // выбрать базу данных
mysql_select_db($db) or die (" Невозможно выбрать рабочую базу данных!");
// проверить существование пользователя // задать строку SQL- запроса
$query = "SELECT uid from bookmark_users WHERE uname = '$uname'"; // выполнить запрос и получить результирующий набор $result = mysql_query($query) or die (" Ошибка в запросе: $query. " . mysql_error());
if (mysql_num_rows($result)> 0)
{
// пользователь существует // получить идентификатор пользователя $row = mysql_fetch_assoc($result); $uid = $row['uid'];
}
else
{
die (" Нет такого пользователя!");
}
// освободить память, занятую результирующим набором
mysql_free_result($result);
// теперь удалить пользователя
$query= "DELETE FROM bookmark_users WHERE uid = . $uid'";
// выполнить запрос и получить результирующий набор
$result = mysql_query($query) or die (" Ошибка в запросе: $query. "
. mysql_error());
// а теперь удалить все ссылки этого пользователя
$query= "DELETE FROM bookmark_urls WHERE fk_uid = '$uid'";
// выполнить запрос и получить результирующий набор
$result = mysql_query($query) or die (" Ошибка в запросе: $query. "
. mysql_error());
// закрыть соединение
mysql_close($connection);
?>
<113>Успешно !</h3> <table> <tr>
<td>
<?php echo $_POST['uname']; ?> - ссылки удалены.
</td>
</tr> <?php
}
?>
</center> </body> </html>
На рис. 21.9 показана начальная форма, а на рис. 21.10 - результат удаления пользователя и его ссылок.
Копаем глубже
Для того чтобы узнать побольше, рекомендуем ознакомиться со следующими Internet-ресурсами!
• Официальный Web-узел PHP: http://www.php.net/
• Руководство по PHP: http://www.PHP.net/manual/
• Посвященный языку PHP раздел на Web-узле Melonfire, содержащий статьи, практические примеры и курсы обучения: http://www.melonfire.com/ community/columns/trog/archives.php?category=PHP
• Посвященный языку PHP раздел на Web-узле Devshed PHP: http://www.
devshed.com/Server_Side/PHP/
• PHPBuilder: http://www.phpbuilder.com/
Резюме
В этой главе рассказывается о функциях PHP, позволяющих пользователям подключаться к серверу базы данных MySQL, а затем взаимодействовать с ним для выполнения запросов и обработки полученных данных. Новейшие версии PHP поступают со встроенной поддержкой MySQL через разнообразный и гибкий набор функций. Эта глава продемонстрировала большинство из них в работе на фрагментах программного кода и законченных сценариев.
В главе описаны четыре основных компонента API-интерфейса MySQL: управление соединением, выполнение запросов, обработка полученного результата и отчет об ошибках. Глава завершается практическим примером конструкции приложения для ведения базы данных, предназначенной для хранения информации об Internet-ресурсах пользователей.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Удаление данных
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Дополнение данных | Введение в программирование в php |