php - 从表中获取多少可用广告

时间:2014-03-27 08:39:16

标签: php mysql sql

我有这张表advertisements,我存储了所有广告。每次用户点击广告时,我都会将该点击记录到名为advertisement_clicks的表中。

我在两个表中存储的内容是:useridunique 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.

所以上面的方法有点混乱,并没有给出正确的结果。

有人可以帮助我更智能地做到这一点吗?

2 个答案:

答案 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

然后获取将返回广告计数的查询结果。