php - 根据来自不同表的 id 计算所有行
问题描述
我想计算photo
基于product id
. 我认为循环计数有一些事情要做。所以我编码如下,但我得到了
致命错误:在非对象上调用成员函数 fetch_assoc()
<?
include_once($_SERVER['DOCUMENT_ROOT']."/cgi-bin/connect.php");
$stmt=$mysqli->prepare("select * from products_db order by prd_id");
$stmt->execute();
$result=$stmt->get_result();
$data=array();
while($row=$result->fetch_assoc()){
//count no. of img in loop
$stmt=$mysqli->prepare("select pic_id from photo_db where pic_sid=?");
$stmt->bind_param('s',$row['prd_sid']);
$result=$stmt->get_result();
$nPic=$result->num_rows;
$data[]=array($row['prd_code'],$row['prd_en'],$row['cat_id'],
number_format($row['prd_cost']),$row['prd_stts'],$nPic,$row['prd_rcm']);
}
echo json_encode(array('data' => $data));
?>
然后我做:
$stmt=$mysqli->prepare("select *,count(pic.pic_id) as npic
from products_db prd
inner join
photo_db pic
on prd.prd_sid=pic.pic_sid
order by prd.prd_id");
它正在工作,但某些产品未显示,因为与以下无关pic_sid
photo_db
我希望所有产品都显示照片计数,即使 DB 中都不存在它们。
解决方案
试试这个查询,我希望它会起作用。
select count(pi.pic_id),pr.* from photo_db pi where pi.pic_sid in (select pr.prd_sid from products_db pr ) group by pi.pic_id
推荐阅读
- algorithm - 哈希表中 CRUD 操作的冲突和复杂性之间有什么联系?
- excel - 有没有办法在 Excel 中使用 VBA 从 Sharepoint 中检索文件元数据,而无需打开每个文件?
- python - 我如何在我的亚马逊蜘蛛中使用scrapy的Itemloader,以便我可以从输出中删除所有新行字符或额外的空格
- javascript - 这个 php 片段的 javascript 等价物
- python - 有没有办法让尽可能多的 selenium web 浏览器出现在用户请求中,使用 for 循环或其他东西。如果是这样,我该怎么做?
- azure-cosmosdb - CosmosDB V3 配置 ChangeFeedProcessor ChangeFeedOptions 以使用分区键
- mongodb - MongoDB 文本搜索、精确短语和逻辑运算符
- javascript - 如何知道函数是否被带有 addEventListener 的元素调用?
- android - 无法更新 Firebase 数据库中的项目
- ios - 更新 Firestore 数据库中不再存在的数据时出现批量写入问题 - iOS Swift