我有一个网站,人们可以在其中单击名称,并将其重定向到相应的名称。 URL
id | name | url
1 | facebook | www.fb.com
我URL
要显示1,200,000,023 。URLs
哪个登录用户尚未访问过。我的注册信息存储userdb.php
如下:
1|username|a84894gf5sag4f684gh68fh45g|[email protected]|NA
我的display.php
是
<?php
mysql_connect('mysql', '1', 'Py');
mysql_select_db('a5803761_add');
$query =mysql_query('select * from addimage order by ID DESC');
while( $row = mysql_fetch_assoc($query) )
{
echo '<div style="min-width:300px;height:100px;border:red 5px;float:left;"><a href="'.$row['url'].'">'.$row['name'].'</a></div>';
}
?>
首先,您必须存储哪个用户已经访问了哪个URL。该表应具有如下结构:
CREATE TABLE VISITED(ID INT AUTO_INCREMENT,
USER_ID INT,
URL_ID INT,
PRIMARY KEY(ID),
KEY(USER_ID),
KEY(URL_ID));
然后,如果用户访问某个URL(也许使用jQuery,然后使用AJAX发送回去),或者使用重定向器PHP记录该单击的URL,然后将用户重定向到该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]);
}
?>
之后,当您列出您的URL时,您必须检查用户尚未访问的是哪些:
<?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中列出这么多的URL不是一个好主意,可能浏览器会消耗掉所有的内存。也许您应该执行某种过滤器或分页机制。
请将此代码仅作为示例,并根据需要对其进行修改。
另一方面,正如其他人所建议的,请勿使用mysql_扩展名,而应使用mysqli或PDO。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句