0
我试图使用PHP来搜索MySQL数据库中的IP和广告网络。基本上,我们会在各种广告网络之间轮换访问者,以防止同一访问者在24小时内被发送到同一网络。搜索并比较多个MySQL表
ip_addresses表
id, address, network_id
1, 120.110.140.223, 1
2, 120.110.140.223, 3
3, 115.157.247.46, 1
网络表
id, name, clicks, status, order
1, Random Name, 200, Active, 1
2, Example Name, 500, Inactive, 3
3, Other Name, 100, Active, 2
基本上,当访客点击我们的PHP页面,我需要能够从networks
表呼应特定id
。它应该是第一个网络的ID尚未在ip_addresses
表中为访问者的IP地址列出。网络应按order
列进行排序,并应具有status = Active
。
我想过使用PHP获取所有网络的id
的名单与他们status
设置为Active
和正确排序是这样的:
SELECT id FROM networks WHERE status = 'Active' ORDER BY id ASC
然后就是遍历,直到我到达第一id
它不在IP地址的ip_addresses
表中。但是,我不确定如何执行该循环,或者在找到不在ip_addresses
表中的第一个network_id
时如何停止该循环。
如果我需要澄清任何事情,请让我知道。谢谢!
我会建议你做一个辅助表与用户和活跃的网络之间的关系,使用来自一个子查询
NOT IN
,删除关系活动时变为无效。这样,在该中间表中,您可以查找用户,并在网络被提取后删除,以继续下一个 –