1. Trang chủ
  2. » Công Nghệ Thông Tin

PHP and MySQL Web Development - P108 pps

5 84 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 92,65 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

In the other table, we look at the bookmarks of all the other users.We are looking for other users b2.username who have an URL the same as the current user b1.bm_URL = b2.bm_URL and are

Trang 1

where b1.username='$valid_user' and b1.username != b2.username and b1.bm_URL = b2.bm_URL

This query uses aliases to join the database table bookmark to itself—a strange but some-times useful concept Imagine that there are actually two bookmark tables, one called b1 and one called b2 In b1, we look at the current user and his bookmarks In the other table, we look at the bookmarks of all the other users.We are looking for other users (b2.username) who have an URL the same as the current user (b1.bm_URL = b2.bm_URL) and are not the current user (b1.username != b2.username)

This query will give us a list of like-minded people to our current user Armed with this list, we can search for their other bookmarks with the following query:

select bm_URL from bookmark where username in $sim_users and bm_URL not in $user_urls group by bm_URL

having count(bm_URL)>$popularity

The variable $sim_userscontains the list of like-minded users.The $user_urlsvariable contains the list of the current user’s bookmarks—if b1already has a bookmark, there’s

no point in recommending it to him Finally, we add some filtering with the $popular-ityvariable—we don’t want to recommend any URLs that are too personal, so we only suggest URLs that a certain number of other users in the list of like-minded users have bookmarked

If we were anticipating a lot of users using our system, we could adjust $popularity upwards to only suggest URLs have been bookmarked by a large number of users

URLs bookmarked by many people might be higher quality and certainly have more general appeal than an average Web page

The full script for making recommendations is shown in Listing 24.26 and 24.27.The main script for making recommendations is called recommend.php(see Listing 24.26) It calls the recommender function recommend_urls()from url_fns.php(see Listing 24.27)

Listing 24.26 recommend.php—This Script Suggests Some Bookmarks That a User

Might Like

<?php require_once('bookmark_fns.php');

session_start();

do_html_header('Recommending URLs');

check_valid_user();

$urls = recommend_urls($HTTP_SESSION_VARS['valid_user']);

Trang 2

508 Chapter 24 Building User Authentication and Personalization

display_user_menu();

do_html_footer();

?>

Listing 24.27 recommend_urls() Function from url_fns.php—This Script Works Out

the Actual Recommendations

function recommend_urls($valid_user, $popularity = 1) {

// We will provide semi intelligent recomendations to people // If they have an URL in common with other users, they may like // other URLs that these people like

if (!($conn = db_connect())) return false;

// find other matching users // with an url the same as you

if (!($result = mysql_query("

select distinct(b2.username) from bookmark b1, bookmark b2 where b1.username='$valid_user' and b1.username != b2.username and b1.bm_URL = b2.bm_URL

"))) return false;

if (mysql_num_rows($result)==0) return false;

// create set of users with urls in common // for use in IN clause

$row = mysql_fetch_object($result);

$sim_users = "('".($row->username)."'";

while ($row = mysql_fetch_object($result)) {

$sim_users = ", '".($row->username)."'";

}

$sim_users = ')';

// create list of user urls // to avoid replicating ones we already know about

if (!($result = mysql_query("

select bm_URL Listing 24.26 Continued

Trang 3

where username='$valid_user'"))) return false;

// create set of user urls for use in IN clause

$row = mysql_fetch_object($result);

$user_urls = "('".($row->bm_URL)."'";

while ($row = mysql_fetch_object($result)) {

$user_urls = ", '".($row->bm_URL)."'";

}

$user_urls = ')';

// as a simple way of excluding people's private pages, and // increasing the chance of recommending appealing URLs, we // specify a minimum popularity level

// if $popularity = 1, then more than one person must have // an URL before we will recomend it

// find out max number of possible URLs

if (!($result = mysql_query("

select bm_URL from bookmark where username in $sim_users and bm_URL not in $user_urls group by bm_URL

having count(bm_URL)>$popularity

"))) return false;

if (!($num_urls=mysql_num_rows($result))) return false;

$urls = array();

// build an array of the relevant urls for ($count=0; $row = mysql_fetch_object($result); $count++) {

$urls[$count] = $row->bm_URL;

}

return $urls;

}

Some sample output from recommend.php is shown in Figure 24.11

Trang 4

510 Chapter 24 Building User Authentication and Personalization

Figure 24.11 The script has recommended that this user might like pets.com.Two other users in the database who both like

slashdot.org have this bookmarked.

Wrapping Up and Possible Extensions

That’s the basic functionality of the PHPBookmark application.There are many possible extensions.You might consider adding

n A grouping of bookmarks by topic

n An “Add this to my bookmarks” link for recommendations

n Recommendations based on the most popular URLs in the database, or on a par-ticular topic

n An administrative interface to set up and administer users and topics

n Ways to make recommended bookmarks more intelligent or faster

n Additional error checking of user input Experiment! It’s the best way to learn

Next

In the next project we’ll build a shopping cart that will enable users to browse our site, adding purchases as they go, before finally checking out and making an electronic pay-ment

Trang 5

Building a Shopping Cart

In this chapter, you will learn how to build a basic shopping cart.We will add this on top of the Book-O-Rama database that we implemented in Part II, “Using MySQL.”We will also explore another option—setting up and using an existing Open Source PHP shopping cart

In case you have not heard it before, the term shopping cart (sometimes also called a

shopping basket) is used to describe a specific online shopping mechanism As you browse

an online catalog, you can add items to your shopping cart.When you’ve finished brows-ing, you check out of the online store—that is, purchase the items in your cart

In order to implement the shopping cart, we will implement the following function-ality:

n A database of the products we want to sell online

n An online catalog of products, listed by category

n A shopping cart to track the items a user wants to buy

n A checkout script that processes payment and shipping details

n An administration interface

The Problem

You will probably remember the Book-O-Rama database we developed in Part II In this project, we will get Book-O-Rama’s online store up and going.The following are requirements for this system:

n We will need to find a way of connecting the database to a user’s browser Users should be able to browse items by category

n Users should also be able to select items from the catalog for later purchase.We will need to be able to track which items they have selected

Ngày đăng: 07/07/2014, 03:20