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 from bookmark 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; }