我在数据库中有两个名为tbl_rotator_urls和tbl_rotators_data的表
tbl_rotator_urls包含URL并且tbl_rotators_data包含具有IP地址的URL访问历史。
我重定向用户的网址位置的基础上。在第一次访问用户获得重定向的第一个位置的网址,在第二次访问用户获得重定向的第二个位置的网址等。
对于以上的事情,我正在检查这样的表,并作出如下查询
$visited_urls=-1;
$stmt = $conn->prepare("SELECT link_id
FROM tbl_rotators_data
WHERE rotator_id = ?
AND link_id !=0
AND ip=?");
$stmt->bind_param('is',$rotator_id,$ip);
$stmt->execute();
$visited_result = $stmt->get_result();
$total_visited_urls = $visited_result->num_rows;
$stmt->close();
$visited_array = array();
if($total_visited_urls>0){
while($visited_row=mysqli_fetch_array($visited_result)){
$visited_array[] = $visited_row['link_id'];
}
if(sizeof($visited_array)>0){
$visited_urls = implode(',', $visited_array);
}else{
$visited_urls=-1;
}
}
所以它给我逗号分隔列表的用户访问的网址
我正在使用像下面的获取下一个保持网址
//select URL which is not visited by USER
$stmt = $conn->prepare("SELECT u.url_id,u.url_url,
FROM tbl_rotator_urls u
LEFT JOIN tbl_rotators_data l ON u.url_id=l.link_id
WHERE u.rotator_id = ?
AND u.url_id NOT IN($visited_urls)
AND url_status=0
GROUP BY u.url_id
ORDER BY $orderby ASC");
$stmt->bind_param('i',$rotator_id);
$stmt->execute();
$url_result = $stmt->get_result();
$total_urls = $url_result->num_rows;
if($total_urls== 0){
// USER have visited all URLS SO set $visited_urls=-1; SO it can get URL again
$visited_urls=-1; //this is doubtful point, I should do something else or more with this but no idea
$stmt = $conn->prepare("SELECT u.url_id,u.url_url,
FROM tbl_rotator_urls u
LEFT JOIN tbl_rotators_data l ON u.url_id=l.link_id
WHERE u.rotator_id = ?
AND u.url_id NOT IN($visited_urls)
AND url_status=0
GROUP BY u.url_id
ORDER BY $orderby ASC");
$stmt->bind_param('i',$rotator_id);
$stmt->execute();
$url_result = $stmt->get_result();
$total_urls = $url_result->num_rows;
}
..... CONTINUE MY CODE FOR REDIRECT
在上述函数中,如果用户访问了所有URL,我将设置$visited_urls = -1,这样我就可以获得URL,但在所有访问中,我将获得相同的URL,而不是像下面这样一个接一个
例如,我有5个网址,我想重复喜欢
1
2
3
4
5
1
2
3
4
5
数据库表信息
tbl_rotator_urls结构如下所示
url_id, url_name, url_url
tbl_rotators_数据结构如下所示
rid, link_id,rotator_id, ip,timestamp
我不知道如何将示例数据放在这里,所以我用Excel编写,并将图像放在这里
- 样本数据图像**:
我正在学习PHP和斗争,从过去两个小时为实现我的目标,但不知道我怎么能做到这一点。让我知道,如果任何Maven在这里可以帮助我相同。
谢谢!
1条答案
按热度按时间bis0qfac1#
我希望这段代码能用