我被困在一個查詢上。
我的目標是在單個查詢中獲取該資料的資訊以及屬于該資料類別的所有資訊。
我有一個可用的代碼,但功能有問題。錯誤是有多少類別,與類別數量相同的資料。旋轉
我的錯:https ://prnt.sc/OzPLaGHFMGP5
我存盤資料的表:https ://prnt.sc/PEqSq2mM5NKM
我保存類別的表格:https ://prnt.sc/WK7n8kAGoUWD
這是我將資料拉入頁面的代碼:
if (!isset($_GET['url']) || empty($_GET['url'])){
header('Location:404.php');
}
$datas = $db->prepare('SELECT * FROM post WHERE url = ?');
$datas->execute([
$_GET['url']
]);
$data = $data->fetch(PDO::FETCH_ASSOC);
if (!$data){
header('Location:404.php');
exit;
}
這是我提取資料類別的代碼:
<?php $categories = $db->query('SELECT Categories.*, COUNT(posts.id) as totalCategory FROM categories
LEFT JOIN posts ON FIND_IN_SET(categories.id, posts.category_id)
GROUP BY Category.id DESC')->fetchAll(PDO::FETCH_ASSOC); ?>
<?php foreach ($category as $category): ?>
<div class="container mt-4">
<div class="row">
<div class="col-md-12">
<div class="card mb-3">
<div class="card title">
<i class="bi-folder"></i> Category: <a href="<?= 'category/' .seo($data['url']) ?>"><?=$category[ ' category_name']?></a>
<a class="Date"><?=$data['date']?> <i class="bi-clock"></i></a>
</div>
<div class="card body">
<?=htmlspecialchars_decode($data['content'])?>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
那么我的查詢有什么問題,您有什么建議?
uj5u.com熱心網友回復:
因此,假設您的表格被稱為“類別”和“帖子”。
根據您目前在您的問題中給我的內容,我提出了以下查詢:
SELECT
categories.*,
COUNT(`posts`.`id`) AS `totalPosts`
FROM `categories`
LEFT JOIN `posts` ON `posts`.`category_id` = `categories`.`id`
ORDER BY `categories`.`id` DESC
它基本上從類別中獲取所有內容,并計算該類別中有多少帖子。然后我們進行左連接以獲取與類別 id 對應的資訊,然后根據類別 id DESC 將其下降(因此向下)。
如果我在您的要求中弄錯了,請糾正我
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482781.html
下一篇:如何防止多列重復條目?
