Php anasayfada konuların sayısı
arkadaşlar anasayfada kategorilerin sağ tarafında kategoriye göre konuların sayısını kategoriye göre kategorinin sağ tarafına yazılır onu istiyorum
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Merhaba, diğer soruna cevap vermiştim aynı veritabanı örneği ile beraber kod örnekleri aşağıya bıraktım. Bu sefer veritabanı işlemleri için düz PDO yerine BasicDB kullandım.
"categories" tablosu:
Sütun | Açıklama |
---|---|
category_id | |
category_title | Kategori başlığı |
category_create | Kategori oluşturulma tarihi |
"blogs" tablosu:
Sütun | Açıklama |
---|---|
blog_id | |
blog_category | Blog yazısının bağlı olduğu kategori id |
blog_title | Blog başlığı |
blog_content | Blog yazısının içeriği |
blog_create | Blog oluşturulma tarihi |
Kategorilerin listelenmesi ve kategoriye ait blog yazılarının sayısının alınması
Back-end
# Tüm kategorileri çekiyoruz.
$categories = $db->from('categories')->all();
# $data isminde yeni bir dizi değişkeni oluştuyoruz, kategorileri ve
# kategoriye ait blog yazılarının sayısını burada depolayacağız.
$data = [];
if($categories){
# Eğer kategori mevcut ise foreach döngüsü
foreach($categories as $category){
# Kategori ismini $data dizisine ekliyoruz.
$data[$category['category_id']['name'] = $category['category_title'];
# Kategoriye ait blog yazılarının sayısını alıyoruz.
$blogs = $db->from('blogs')
->where('blog_category', $category['category_id'])
->select('count(blog_id) as total')
->total();
if($blogs){
# Toplam blog sayısını $data dizisine ekliyoruz.
$data[$category['category_id']['total_blog_count'] = $blogs;
}
}
}
Front-end
<ul>
<?php foreach($data as $category): ?>
<li>
<?= $category['name'] ?>
<span>Toplam Blog Sayısı: <?= $category['total_blog_count'] ?></span>
</li>
<?php endforeach; ?>
</ul>
BasicDB ile yaptığım veritabanı sorgularını yapay zeka (chatgpt vs.) kullanarak PDO sorgularına çevirebilirsin.
Ek olarak sorunu "Kategorilerle birlikte, kategorilerde bulunan blog yazılarının sayısını nasıl yazdırabilirim?" benzeri sorabilirsen daha anlaşılır olacağını düşünüyorum :)