首先,您必須存儲哪個用戶已經訪問了哪個網址。這個表應該有一個這樣的結構:
CREATE TABLE VISITED(ID INT AUTO_INCREMENT,
USER_ID INT,
URL_ID INT,
PRIMARY KEY(ID),
KEY(USER_ID),
KEY(URL_ID));
然後,你必須interprep用戶的點擊保存,如果他們訪問一個網址(使用jQuery也許,併發回本用AJAX)或使用redirecter PHP這記錄點擊的URL,然後將用戶重定向到此。
如果考慮第二個,這個PHP應該是:
<?php
//You should check here for the URL to be an integer
$res = mysql_query('SELECT url FROM addimage WHERE id='.$url_id.';');
if (mysql_num_rows($res)>0) {
mysql_query('INSERT INTO VISITED VALUES(NULL,'.$_SESSION['logged_in_user_id'].','.$url_id.');');
$row = mysql_fetch_array($res);
Header('Location: http://'.$row[0]);
}
?>
之後,當你列出你的網址,你必須檢查哪些是用戶還不訪問:
<?php
mysql_connect('mysql', '1', 'Py');
mysql_select_db('a5803761_add');
$sql = 'select addimage.id, addimage.name, VISITED.USER_ID from addimage ';
$sql .= 'LEFT JOIN VISITED ON (addimage.id = VISITED.URL_ID) ';
$sql .= 'WHERE (VISITED.USER_ID='.$_SESSION['logged_in_user_id'].');';
$query =mysql_query('order by ID DESC');
while($row = mysql_fetch_assoc($query))
{
if ($row[2] == 'NULL') {
echo '<div style="min-width:300px;height:100px;border:red 5px;float:left;"><a href="/redirecter.php?url_id='.$row['id'].'">'.$row['name'].'</a></div>';
}
}
?>
但我認爲在一個HTML中列出很多網址並不是一個好主意,可能瀏覽器會佔用所有內存。也許你應該做一些過濾器或分頁機制。
請考慮此代碼僅作爲示例,並根據您的需要進行修改。另一方面,正如其他人所建議的,不要使用mysql_擴展名,使用mysqli或PDO。
什麼問題?問題? – 2015-02-10 07:26:42
首先,使用'mysqli'。其次,你有什麼錯誤? – 2015-02-10 07:51:49
好的,不錯的代碼。 – 2015-02-10 07:56:57