显示用户收藏/通知的数量

时间:2015-01-08 16:22:52

标签: php mysql ajax pdo

我是php和mvc结构的新手,但是我正在为个人开发开发一个库应用程序。一切都按预期工作,但我想再实现一个功能 - '收藏夹'。

<div>中包含的通知样式栏。

我目前有一个favourites表,其中包含以下内容;

id    book_id    user_id
1     2422       22
2     6551       71
3     7716       22

我想要做的只是显示给登录用户(例如上面的用户22)&#34;您好,您的收藏夹中有 2 项目&#34; < / em>的。我知道这应该是相对简单的,通常情况下,但mvc格式让我有些困惑。

我认为我完成了大部分工作,我只需要一些方向和建议,以便我在哪里出错。还有其他我应该加载或包含的内容吗?我该如何显示<div>中的收藏数?

我在下面提供了我的代码供参考。

books_controller.php

function checkFav()
    {
        $checkFav_model = $this->loadModel('Books');
        $checkFav_model->wishList();
    }

function itemView()
    {
        $itemView_model = $this->loadModel('Books');
        $this->view->books = $itemView_model->itemView();
        $this->view->render('books/itemView');
    }

books_model.php

public function wishList()
 {
    $userid=$_SESSION['user_id'];

    $sql = "SELECT COUNT(*) FROM favourite WHERE user_id = :user_id";
    $query = $this->db->prepare($sql);
    $query->bindParam(':user_id', $userid);
    $query->execute();
    $rows_found = $query->fetchColumn();//numRows doesnt work

     if(empty($rows_found)) {
        echo $rows_found;
    } else { 
        echo $rows_found;
    }
 }

的header.php

<div class="notifications">
**DISPLAY NUMBER OF FAVS HERE**
</div>

2 个答案:

答案 0 :(得分:0)

尝试此查询:

$sql = "SELECT COUNT(book_id) AS book FROM favourite WHERE user_id = :user_id";

原因:用户有很多喜欢的书。并且你的报价在上面

  

&#34;您好,您的收藏夹中有2件商品&#34;

所以我想你想要展示他喜欢的书。不是他喜欢这本书多少次。但是可以使用SUM上的user_id来完成。

答案 1 :(得分:0)

嗯,也许这样:

$sql = "SELECT COUNT(id) as count FROM favourite WHERE user_id = :user_id";
$query = $this->db->prepare($sql);
$query->bindParam(':user_id', $userid);
$query->execute();
$rows_found = $query->fetchAll();
$rows_found = $rows_found[0][count];