Привет, Гость!
Учебник PHP #11
// относящихся к категории $category.
function view_bookmark ($category) {
GLOBAL $bookmark_table, $cell_color, $categories;
$query = "SELECT site_name, url, DATE_FORMAT(date_added,'%m-%d-%Y') AS date_added, description
FROM $bookmark table WHERE category = $category ORDER BY datejdded DESC";
$result = @mysql_query($query);
print "<div align=\"center\"><table cellpadding=\"2\" cellspacing=\"1\" border = \"0\" width = \"600\">";
print "<tr><td bgcolor-\"$cell_color\"><b>Category: $categories[$category]</b></td></tr>";
if (mysql_numrows($result) > 0) ;
while ($row = mysql_fetch_array($result)) ;
Posted: ".$row["date added"]."<br>"
else
print "<tr><td>";
print "<b>".$row["site_name"]."</b>
print "</td></tr>";
print "<tr><td>";
print "<a href = \"http://".$row["url"]."\">http://".
$row["url"]."</a><br>";
print "</td></tr>";
print "<tr><td valign=\"top\">";
print $row["description"]."<br>";
print "</td></tr>";
print "<tr><td><hr></td></tr>";
endwhile;
print "<tr><td>There are currently no bookmarks falling under this category. Why don't you <a href=\"add_bookmark.php\">add one</a>?</td></tr>";
endif:
print "</table><a href=\"Listing11-11.php\">Return to index</a>
print "<a href=\"add_bookmark.php\">Add a bookmark</a></div>";
// view bookmark
?>
Следующая страница, add_bookmark.php (листинг 11.9), предназначена для ввода информации о новой ссылке, включаемой в базу данных. Для обработки пользовательских данных вызывается функция add_bookmark( ).
Листинг 11.9. Программа add_bookmark.php
<html>
<?
INCLUDE("init.inc");
?>
<head>
<title><?=$title:?></title> </head>
<body bgcolor="#ffffff" text="#000000" link="#808040" vlink="#808040" alink="#808040"> if (! $seenform) :
<form action="add_bookmark.php" method="post"> <1nput type="hidden" name="seenform" value="y">
Category:<br>
<select name="category">
<option value="">Choose a category:
while (list($key, $value) = each($categories)) :
print "<option value=\"$key\">$value"; endwhile:
</select><br>
Site Name:<br>
<input type="text" name="site_name" size="15" maxlength="30" value=""><br>
URL: (do <i>not</1> include "http://"!)<br>
<input type="text" name="url" size="35" maxlength="50" value=""><br>
Description:<br>
<textarea name="description" rows="4" cols="30"></textarea><br>
<input type="submit" value="submit">
</form>
else :
add_bookmark($category, $site_name, $url, $description);
print "<h4>Your bookmark has been added to the repository.
<a href=\"Listing11-11.php\">Click here</a> to return to the index.</h4>";
endif;
?>
При исходной загрузке страницы в браузере отображается форма (рис. 11.5).
После сохранения ссылки в базе программа выдает соответствующее сообщение и создает ссылку для перехода к домашней странице приложения index.php (листинг 11.11).
Рис. 11.5. Форма, отображаемая страницей add_bookmark.php
Следующая страница, view_bookmark.php, просто вызывает функцию view_bookmark( ). Код этой страницы приведен в листинге 11.10.
Листинг 11.10. Программа view_bookmark.php
<html>
<?
INCLUDE("Listing11-8.php"); ?>
<head>
<title><?=$title:?></title>
</head>
<body bgcolor="<?=$bg_color;?>" text="#000000" link="#808040" vlink="#808040" alink="#808040">
view_bookmark($category) :
?>
Если занести в категорию dining информацию о нескольких сайтах, страница view_bookmark.php будет выглядеть примерно так, как показано на рис. 11.6.
Рис. 11.6. Выполнение страницы view_bookmark.php для категории dining
Остается лишь создать страницу, на которой пользователь выбирает ссылки из списка. Я назвал этот файл index.php (листинг 11.11).
Листинг 11.11. Программа index.php
<html>
<?
INCLUDE("init.inc");
?>
<head>
<titlex?-$title:?></title>
</head>
<body bgcolor="<?=$bg_color;?>" text="#000000" link="#808040" vlink="#808040"
alink="#808040">
<h4>Choose bookmark category to view:</h4>
<?
// Перебрать категории и создать соответствующие ссылки
while (list($key, Svalue) = each(Scategories)) :
print "<a href = \"view_bookmark.php?category=$key\">$value</a><br>";
endwhile;
?>
<p>
<b><a href="add_bookmark.html.php">Add a new bookmark</a></b>
</body>
</html>
Если оставить в массиве $categories значения, сохраненные в файле init.inc, в результате выполнения листинга 11.11 в браузер будет отправлен код HTML, приведенный в листинге 11.12.
Листинг 11.12. Выходные данные, сгенерированные при выполнении index.php
<html>
<head>
<title></title>
</head>
<body bgcolor="white" text="#000000" link="#808040" vlink="#808040" alink="#808040">
<h4>Choose bookmark category to view:</h4>
<a href = "view_bookmark.php?category=0">computers</a><br>
<a href = "view_bookmark.php?category=1">entertainment</a><br>
<a href = "view_bookmark.php?category=2">dining</axbr>
<a href - "view_bookmark.php?category=3">lifestyle</a><br>
<a href = "view_bookmark.,php?category=4">government</a><br>
<a href = "view_bookmark.php?category=5">travel</a><br>
<p>
<b><a href=add_bookmark.php">Add a new bookmark</a></b>
</body>
</html>
Если щелкнуть на любой ссылке из приведенного выше,фрагмента HTML, в браузере загружается файл view_bookmark.php, который вызывает функцию view_bookmark( ) и передает ей значение переменной $category.
Итоги
Эта глава получилась довольно большой, причем для некоторых читателей она может оказаться самой важной во всей книге. Бесспорно, работа с базами данных
относится к числу самых заметных возможностей языка РНР, поскольку базы данных заметно расширяют функциональные возможности web-сайтов. В частности, мы рассмотрели следующие темы:
общие сведения о SQL;
стандартную поддержку баз данных в РНР;
вводную информацию о сервере MySQL;
стандартные функции РНР для работы с MySQL;
реализацию простейшей поисковой системы;
сортировку таблиц;
общие сведения об ODBC;
стандартные функции РНР для работы с ODBC;
взаимодействие с Microsoft Access в РНР;
хранение пользовательских данных на web-сайте.
Читателю, занимающемуся разработкой больших, подлинно динамических web-сайтов на РНР, предстоит снова и снова возвращаться к теме баз данных. Я рекомендую тщательно изучить не только документацию РНР, но и другие ресурсы, посвященные технологиям баз данных. В этой области, как и во многих современных технологиях, даже эксперты не всегда успевают следить за всеми новшествами.
Следующая глава посвящена шаблонам — одной из нетривиальных тем web-программирования. Применение шаблонов при программировании на РНР обеспечивает заметную экономию времени и усилий при работе над крупномасштабными web-сайтами.
function view_bookmark ($category) {
GLOBAL $bookmark_table, $cell_color, $categories;
$query = "SELECT site_name, url, DATE_FORMAT(date_added,'%m-%d-%Y') AS date_added, description
FROM $bookmark table WHERE category = $category ORDER BY datejdded DESC";
$result = @mysql_query($query);
print "<div align=\"center\"><table cellpadding=\"2\" cellspacing=\"1\" border = \"0\" width = \"600\">";
print "<tr><td bgcolor-\"$cell_color\"><b>Category: $categories[$category]</b></td></tr>";
if (mysql_numrows($result) > 0) ;
while ($row = mysql_fetch_array($result)) ;
Posted: ".$row["date added"]."<br>"
else
print "<tr><td>";
print "<b>".$row["site_name"]."</b>
print "</td></tr>";
print "<tr><td>";
print "<a href = \"http://".$row["url"]."\">http://".
$row["url"]."</a><br>";
print "</td></tr>";
print "<tr><td valign=\"top\">";
print $row["description"]."<br>";
print "</td></tr>";
print "<tr><td><hr></td></tr>";
endwhile;
print "<tr><td>There are currently no bookmarks falling under this category. Why don't you <a href=\"add_bookmark.php\">add one</a>?</td></tr>";
endif:
print "</table><a href=\"Listing11-11.php\">Return to index</a>
print "<a href=\"add_bookmark.php\">Add a bookmark</a></div>";
// view bookmark
?>
Следующая страница, add_bookmark.php (листинг 11.9), предназначена для ввода информации о новой ссылке, включаемой в базу данных. Для обработки пользовательских данных вызывается функция add_bookmark( ).
Листинг 11.9. Программа add_bookmark.php
<html>
<?
INCLUDE("init.inc");
?>
<head>
<title><?=$title:?></title> </head>
<body bgcolor="#ffffff" text="#000000" link="#808040" vlink="#808040" alink="#808040"> if (! $seenform) :
<form action="add_bookmark.php" method="post"> <1nput type="hidden" name="seenform" value="y">
Category:<br>
<select name="category">
<option value="">Choose a category:
while (list($key, $value) = each($categories)) :
print "<option value=\"$key\">$value"; endwhile:
</select><br>
Site Name:<br>
<input type="text" name="site_name" size="15" maxlength="30" value=""><br>
URL: (do <i>not</1> include "http://"!)<br>
<input type="text" name="url" size="35" maxlength="50" value=""><br>
Description:<br>
<textarea name="description" rows="4" cols="30"></textarea><br>
<input type="submit" value="submit">
</form>
else :
add_bookmark($category, $site_name, $url, $description);
print "<h4>Your bookmark has been added to the repository.
<a href=\"Listing11-11.php\">Click here</a> to return to the index.</h4>";
endif;
?>
При исходной загрузке страницы в браузере отображается форма (рис. 11.5).
После сохранения ссылки в базе программа выдает соответствующее сообщение и создает ссылку для перехода к домашней странице приложения index.php (листинг 11.11).
Рис. 11.5. Форма, отображаемая страницей add_bookmark.php
Следующая страница, view_bookmark.php, просто вызывает функцию view_bookmark( ). Код этой страницы приведен в листинге 11.10.
Листинг 11.10. Программа view_bookmark.php
<html>
<?
INCLUDE("Listing11-8.php"); ?>
<head>
<title><?=$title:?></title>
</head>
<body bgcolor="<?=$bg_color;?>" text="#000000" link="#808040" vlink="#808040" alink="#808040">
view_bookmark($category) :
?>
Если занести в категорию dining информацию о нескольких сайтах, страница view_bookmark.php будет выглядеть примерно так, как показано на рис. 11.6.
Рис. 11.6. Выполнение страницы view_bookmark.php для категории dining
Остается лишь создать страницу, на которой пользователь выбирает ссылки из списка. Я назвал этот файл index.php (листинг 11.11).
Листинг 11.11. Программа index.php
<html>
<?
INCLUDE("init.inc");
?>
<head>
<titlex?-$title:?></title>
</head>
<body bgcolor="<?=$bg_color;?>" text="#000000" link="#808040" vlink="#808040"
alink="#808040">
<h4>Choose bookmark category to view:</h4>
<?
// Перебрать категории и создать соответствующие ссылки
while (list($key, Svalue) = each(Scategories)) :
print "<a href = \"view_bookmark.php?category=$key\">$value</a><br>";
endwhile;
?>
<p>
<b><a href="add_bookmark.html.php">Add a new bookmark</a></b>
</body>
</html>
Если оставить в массиве $categories значения, сохраненные в файле init.inc, в результате выполнения листинга 11.11 в браузер будет отправлен код HTML, приведенный в листинге 11.12.
Листинг 11.12. Выходные данные, сгенерированные при выполнении index.php
<html>
<head>
<title></title>
</head>
<body bgcolor="white" text="#000000" link="#808040" vlink="#808040" alink="#808040">
<h4>Choose bookmark category to view:</h4>
<a href = "view_bookmark.php?category=0">computers</a><br>
<a href = "view_bookmark.php?category=1">entertainment</a><br>
<a href = "view_bookmark.php?category=2">dining</axbr>
<a href - "view_bookmark.php?category=3">lifestyle</a><br>
<a href = "view_bookmark.,php?category=4">government</a><br>
<a href = "view_bookmark.php?category=5">travel</a><br>
<p>
<b><a href=add_bookmark.php">Add a new bookmark</a></b>
</body>
</html>
Если щелкнуть на любой ссылке из приведенного выше,фрагмента HTML, в браузере загружается файл view_bookmark.php, который вызывает функцию view_bookmark( ) и передает ей значение переменной $category.
Итоги
Эта глава получилась довольно большой, причем для некоторых читателей она может оказаться самой важной во всей книге. Бесспорно, работа с базами данных
относится к числу самых заметных возможностей языка РНР, поскольку базы данных заметно расширяют функциональные возможности web-сайтов. В частности, мы рассмотрели следующие темы:
общие сведения о SQL;
стандартную поддержку баз данных в РНР;
вводную информацию о сервере MySQL;
стандартные функции РНР для работы с MySQL;
реализацию простейшей поисковой системы;
сортировку таблиц;
общие сведения об ODBC;
стандартные функции РНР для работы с ODBC;
взаимодействие с Microsoft Access в РНР;
хранение пользовательских данных на web-сайте.
Читателю, занимающемуся разработкой больших, подлинно динамических web-сайтов на РНР, предстоит снова и снова возвращаться к теме баз данных. Я рекомендую тщательно изучить не только документацию РНР, но и другие ресурсы, посвященные технологиям баз данных. В этой области, как и во многих современных технологиях, даже эксперты не всегда успевают следить за всеми новшествами.
Следующая глава посвящена шаблонам — одной из нетривиальных тем web-программирования. Применение шаблонов при программировании на РНР обеспечивает заметную экономию времени и усилий при работе над крупномасштабными web-сайтами.
Комментарии (0)
Скачать Java книгу»php/mysql/pdo/js
В библиотеку