ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

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

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Все о MySQL. Пример практического применения API-интерфейса PHP


28-12-2009

Воспользуемся полученными знаниями для построения простого Web-приложения, работающего с СУБД MySQL, - архива Web-адресов, позволяющего вести список любимых Web-узлов с использованием для этого базы данных. Таким образом, на практическом примере мы увидим применение функций API-интерфейса MySQL PHP.
Пример практического применения API-интерфейса PHP
Проектирование базы данных
При создании таких приложений прежде всего необходимо определить требования к ним. В этом приложении каждый пользователь идентифицируется уникальным идентификатором регистрации, который служит ключом, связывающим пользователя с его списком ссылок. Пользователи получают возможность просмотра, добавления или удаления списков Web-адресов с использованием простейшего Web-интерфейса.
Согласно этим требованиям нужно разработать простейшую базу данных, которая будет служить основой этого приложения. Использованная здесь база данных состоит из двух таблиц - bookmark_users и bookmark_urls, содержащих списки пользователей и соответствующие им ссылки на Web-адреса. Ниже представлены SQL-запросы, необходимые для создания и инициализации этих таблиц.
Листинг 21.26.
CREATE TABLE bookmark_users (
uid tinyint(4) NOT NULL auto_increment, uname varchar(15) NOT NULL default '', PRIMARY KEY (uid),
UNIQUE KEY uid (uid), UNIQUE KEY uname (uname) ) TYPE=MyISAM;
INSERT INTO bookmark_users (uid, uname) VALUES (1, 'bill'); INSERT INTO bookmark_users (uid, uname) VALUES (2, 'john'); CREATE TABLE bookmark_urls (
fk_uid tinyint(4) NOT NULL default '0',
label varchar(255) NOT NULL default '',
url varchar(255) NOT NULL default '' ) TYPE=MyISAM;
INSERT INTO bookmark_urls (fk_uid, label, url)
VALUES (1, 'Melonfire', 'http://www.melonfire.com/');
INSERT INTO bookmark_urls (fk_uid, label, url)
VALUES (1, 'Developer Shed', 'http://www.devshed.com/');
INSERT INTO bookmark_urls (fk_uid, label, url)
VALUES (1, 'PHP', 'http://www.php.net/');
INSERT INTO bookmark_urls (fk_uid, label, url)
VALUES (2, 'Yahoo', 'http://www.yahoo.com/');
INSERT INTO bookmark_urls (fk_uid, label, url)
VALUES (2, 'Slashdot', 'http://www.slashdot.org');
Таким образом, будут созданы две таблицы с именами пользователей, названиями и ад­ресами Web-узлов для двух выдуманных пользователей: bill и john. Две таблицы связаны друг с другом по столбцу uid, являющемуся внешним ключом и соединяющим пользователя из таблицы bookmark_users с адресом, хранящимся в таблице bookmark_urls.
Выборка данных
После создания базы данных, не должно вызывать особых затруднений создание про­стейшего сценария, предназначенного для ведения списка пользователей и их любимых Web-адресов и отображения их в табличном виде.
Листинг 21.27.
<html> <head>
<basefont face "Arial"> 
</head>
<body>
<?php
// задать переменные доступа к серверу $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 uname, label, url FROM bookmark_users, bookmark_urls
WHERE bookmark_users.uid = bookmark_urls.fk_uid";
// выполнить запрос и получить результирующий набор
$result = mysql_query($query) or die (" Ошибка в запросе: $query."
. mysql_error());
// есть ли строки в результате?
if (mysql_num_rows ($result) > 0)
{
// да
// просмотр результирующего набора
// вывести результаты в табличном виде
echo "<table>";
echo "<tablewidth=450 border=1 cellspacing=0 cellpadding=10>"; echo "<tr>";
echo "<td align=left><b>User</b></td>"; echo "<td align=left><b>Bookmark</b></td>"; echo "</tr>";
while ($row = mysql_fetch_assoc($result))
{
echo "<tr>";
echo "<td align=left>" . $row['uname'] . "</td>"; echo "<td align=left><a href=" . $row['url'] . ">" . $row['label'] . "</a></td>"; echo "</tr>";
}
echo "</table>";
}
else
{
// нет
// распечатать диагностическое сообщение echo "Данные не найдены";
}
// закрыть соединение mysql_close($connection);
?>
</body> </html>
Как и во всех предыдущих примерах, этот сценарий сначала устанавливает соединение с базой данных. Затем создается запрос, который отправляется на сервер, и результирующий набор возвращается на браузер. В этом случае из-за того, что данных будет больше, чем ранее, можно воспользоваться функцией mysql_fetch_assoc() . Напомним, что эта функция возвращает значения в виде пронумерованного массива, позволяя выборку элементов по имени столбца.
На рис. 21.6 отображается вывод, который может иметь этот сценарий.
Пример практического применения API-интерфейса PHP

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Обработка ошибок Все о MySQL. Дополнение данных