Назад                                              Поисковая Система

   Всем нам неоднократно приходилось пользоваться поисковыми системами в Web, но как устроены такие системы? Простейшая поисковая система принимает по крайней мере одно ключевое слово. Это слово включается в запрос SQL, который затем используется для выборки информации из базы данных. Результат поиска форматируется поисковой системой по тому или иному критерию (скажем, по категории или степени соответствия).

<?

$form =

"<form action=\"Listing11-5.php\" method=\"post\">

<input type=\"hidden\" name=\"seenform\" value=\"y\">

Keyword:<br>

<input type=\"text\" name=\"keyword\" size=\"20\" maxlength=\"20\" value=\"\"><br>

Search Focus:<br>

<select name=\"category\">

<option value=\"\">Choose a category:

<option value-\"cust_id\">Customer ID

<option value=\"cust_name\">Customer Name

<option value=\"cust_eman\">Customer Email

</select><br>

<input type-\"submit\" value=\"search\"> ,

</form>

// Если форма еще не отображалась - отобразить ее

if (Sseenform != "у") :

print $form; else :

// Подключиться к серверу MySQL и выбрать базу данных

@mysql_connect("localhost", "web", "ffttss")

or die("Could not connect to MySQL server!");

@mysql_select_db("company")

or die("Could not select company database!");

// Построить и выполнить запрос

$query = "SELECT cust_id. cust_name, cust_email

FROM customers WHERE $category = '$keyword'";

$result = mysql_query($query);

// Если совпадения не найдены, вывести сообщение

// и заново отобразить форму

if (mysql_num_rows($result) == 0) :

print "Sorry, but no matches were found. Please try your search again:";

print $form;

// Найдены совпадения. Отформатировать и вывести результаты, else :

// Отформатировать и вывести значения полей.

list($id, $name, $email) = mysql_fetch_row($result);

print "<h3>Customer Information:</h3>";

print "<b>Name:</b> $name <br>";

print "<b>Identification #:</b> $id <br>";

print "<b>Email:</b> <a href-\"mailto:$email\">$email</a> <br>";

print "<h3>Order History:</h3>";

// Построить и выполнить запрос к таблице 'orders'

$query = "SELECT order_id, prod_id, quantity

FROM orders WHERE cust_id = '$id'

ORDER BY quantity DESC";

$result = mysql_query($query):

print "<table border = 1>";

print "<tr><th>0rder ID</th><th>Product ID</th><th>Quantity</th></tr>";

// Отформатировать и вывести найденные записи.

while (list($order_id, $prod_id, $quantity) = mysql_fetch_row($result));

print "<tr>";

print "<td>$order_id</td><td>$prod_id</td><td>$quantity</td>";

print "</tr>";

endwhile;

print "</table>";

endif;

endif;

?>

   Если ввести ключевое слово Mi 1 апо и выбрать в раскрывающемся списке категорию Customer Name (Имя клиента), программа выводит следующую информацию:

Customer information:

Name:Milano

Identification#:2000cu

Email:felix@milano.com

Order History:

Order Id Product Id Quantity
100003 1000pr 12
100005 1002pr 11

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

 

  

Данная программа представлена на DeeCo

 

Hosted by uCoz