我有这张表advertisements
,我存储了所有广告。每次用户点击广告时,我都会将该点击记录到名为advertisement_clicks
的表中。
我在两个表中存储的内容是:userid
和unique token
。
所以,我想知道有多少可用的广告供用户查看。目前,我这样做:
$ex = $dbh->prepare("SELECT * FROM advertisements WHERE status='2' AND fixed='0'");
$ex->execute();
foreach ($ex as $normal) {
$search2=$dbh->prepare("SELECT * FROM advertisement_clicks WHERE token=:token AND username=:username");
$search2->bindParam(":token",$normal['token']);
$search2->bindParam(":username",$userdata['id']);
$search2->execute();
}
$allnormal = $ex->rowCount();
$clickednormal = $search2->rowCount();
$normalads = $allnormal-$clickednormal;
$allnormal = how many advertisements is available.
$clickednormal = how many of these advertisements has the user clicked.
所以上面的方法有点混乱,并没有给出正确的结果。
有人可以帮助我更智能地做到这一点吗?
答案 0 :(得分:1)
您可以使用COUNT来通过SQL获取它。
SELECT count(*)as addCount FROM advertisement_clicks WHERE token =:token AND username =:username"
答案 1 :(得分:0)
我有一段时间没跟PHP搞砸了所以我甚至不打算写一些代码大声笑,但我这样做是因为我执行了这个查询:
SELECT COUNT(*) FROM advertisement_clicks WHERE token=:token AND username=:username
然后获取将返回广告计数的查询结果。