显示用户收藏/通知数量
Display number of user favourites / notifications
我是 php 和 mvc 结构的新手,但是我正在开发一个用于个人开发的库应用程序。一切都按预期工作,但我想再实现一项功能 - 'favourites'。
包含在 <div>
中的通知样式栏。
我目前有一个 favourites
table 包含以下内容;
id book_id user_id
1 2422 22
2 6551 71
3 7716 22
我想做的只是显示给登录用户(例如上面的用户 22)"Hello, you have 2 items in your favourites"。我知道这应该相对简单,而且通常会如此,但是 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>
试试这个查询:
$sql = "SELECT COUNT(book_id) AS book FROM favourite WHERE user_id = :user_id";
原因:用户有很多喜欢的书。你的报价在上面
"Hello, you have 2 items in your favourites"
所以我认为你想展示他有多喜欢这本书。不是他喜欢这本书多少次。但是可以在 user_id
.
上使用 SUM
来完成
嗯,也许是这样:
$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];
我是 php 和 mvc 结构的新手,但是我正在开发一个用于个人开发的库应用程序。一切都按预期工作,但我想再实现一项功能 - 'favourites'。
包含在 <div>
中的通知样式栏。
我目前有一个 favourites
table 包含以下内容;
id book_id user_id
1 2422 22
2 6551 71
3 7716 22
我想做的只是显示给登录用户(例如上面的用户 22)"Hello, you have 2 items in your favourites"。我知道这应该相对简单,而且通常会如此,但是 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>
试试这个查询:
$sql = "SELECT COUNT(book_id) AS book FROM favourite WHERE user_id = :user_id";
原因:用户有很多喜欢的书。你的报价在上面
"Hello, you have 2 items in your favourites"
所以我认为你想展示他有多喜欢这本书。不是他喜欢这本书多少次。但是可以在 user_id
.
SUM
来完成
嗯,也许是这样:
$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];