ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Отображение закладок. Удаление закладок

Удаление закладок

Отображение закладок

В сценарии member.php и функции add_bm() применялись функции get_user_urls() и display_user_urls(). Они осуществляют, соответственно, извлечение закладок из базы данных и их отображение. Функция get_user_urls() содержится в библиотеке url_fns.php, a display_user_urls() — в библиотеке output_fns.php.

Функция get_user_urls() из библиотеки url_fns.php — извлекает закладки пользователя из базы данных

function get_user_urls($username)
{
// Извлекает из базы данных все сохраненные пользователем URL-адреса
$conn = db_connect();
$result = $conn->query( "select bm_URL
from bookmark
where username = '$username'"
);
if (!$result)
return false;

// Создать массив URL-адресов
$url_array = array();
for ($count = 1; $row = $result->fetch_row(); ++$count)
{
$url_array[$count] = $row[0];
}
return $url_array;
};

Рассмотрим кратко эту функцию. Она принимает имя пользователя в качестве параметра и извлекает для него закладки из базы данных. Функция возвращает массив URL-адресов либо значение false, если закладки не могут быть извлечены.

Этот массив может передаваться из функции get_user_urls() в функцию display_user_urls(). Это простая функция вывода HTML-содержимого, выполняющая печать URL-адресов в привлекательном табличном формате. Она здесь не рассматривается. Пример вывода показан на рисунке. Функция помещает URL-адреса в форму. Рядом с каждым URL-адресом находится флажок, который позволяет пометить закладку для удаления.

Отображение закладок

Удаление закладок

Когда пользователь помечает некоторые закладки для удаления и выбирает из меню опцию Удалить закладку, передается форма, содержащая URL-адреса. Каждый флажок генерируется с помощью следующего кода функции display_user_urls():

echo "<td><input type='checkbox' name=\"del_me[ ]\" value=\"$url\"></td>";

Именем каждого флажка является del_me [ ]. Это означает, что если форма запускает PHP-сценарий, будет осуществляться доступ к массиву $del_me, который содержит все удаляемые закладки.

Выбор опции Удалить закладку приводит к запуску сценария delete_bms.php.

delete_bms.php — этот сценарий удаляет закладки из базы данных

<?php
require_once('bookmark_fns.php');
session_start();
$title = "Удаление закладок";
$description = "Удаление закладок";
$keywords = "Удаление закладок";
// Создать короткие имена переменных
$del_me = $_POST['del_me'];
$valid_user = $_SESSION['valid_user'];

do_html_header($title, $description, $keywords);
blok_left();
echo'<div id="blok_right">';
echo '<div class="blok_text">';
echo'<div class="text_top" align=left>';
do_html_heading($title);
check_valid_user();
if (!filled_out($_POST))
{
echo 'Не выбрано ни одной закладки для удаления. '
.'Пожалуйста, повторите попытку.';
display_user_menu();
echo '</div></div></div>';
do_html_footer();
exit;
}
else
{
if (count($del_me) >0)
{
foreach($del_me as $url)
{
if (delete_bm($valid_user, $url))
echo 'Удалена '.htmlspecialchars($url).'.<br />';
else
echo 'Невозможно удалить '.htmlspecialchars($url).'.<br />';
}
}
else
echo 'Не выбрано ни одной закладки для удаления';
}

// Получить закладки, сохраненные данным пользователем
if ($url_array = get_user_urls($valid_user));
display_user_urls($url_array);

display_user_menu();
echo '</div></div></div>';
do_html_footer();
?>

Сценарий начинается с обычной проверки допустимости данных. Когда выясняется, что пользователь выбрал несколько закладок для удаления, их удаление выполняется в следующем цикле:

foreach($del_me as $url)
{
if (delete_bm($valid_user, $url))
echo 'Удалена '.htmlspecialchars($url).'.<br />';
else
echo 'Невозможно удалить '.htmlspecialchars($url).'.<br />';
}

Несложно заметить, что функция delete_bm() выполняет удаление закладок из базы данных.

function delete_bm($user, $url)
{
// Удаляет один URL-адрес из базы данных
$conn = db_connect();

// Удалить закладку
if (!$conn->query( "delete from bookmark
where username='$user' and bm_url='$url'"
))
throw new Exception('Закладка не может быть удалена.');
return true;
}

Эта функция также очень проста. Она предпринимает попытку удаления из базы данных закладки определенного пользователя. Отметим, что необходимо удалить опре деленную пару "имя пользователя — закладка". Для остальных пользователей данная закладка может сохраняться.

Пример вывода сценария удаления показан на рисунке.

Сценарий удаления уведомляет пользователя о том, какие закладки удалены, и отображает оставшиеся

Как и в сценарии addjbms.php, после внесения изменений в базу данных отображается новый список закладок с помощью функций get_user_urls() и display_user_urls().