v2.5.2
Giriş yap

id ye göre tablodan veri saydırma

yeni2021
748 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhaba iki tablom var biri koleksiyon_tr bunun içinde koleksiyon tanımlayıcı bilgilerini tutuyorum (ID,k_baslik,k_adi, k_id,seflink,tablo).
Diğer tablomda makalelerin olduğu tablo: makale_tr (ID,yazar,baslik,link,koleksiyon_id). Ortak noktaları ise
koleksiyon_tr.k_id = makale_tr.koleksiyon_id

panelimde koleksiyon adlarının listesini çektim ve bu koleksiyon adlarının kaç makalede kullanıldığını saydırmak için fonksiyon yazmaya çalıştım.
Fakat makale_tr tablosu koleksiyon_id sütununa göre saydırtamadım. Toplam makale sayısını veriyor. Kod konusunda yardımcı olur musunuz?

public function sayKoleksiyon($koleksiyon_id){
	$sql="SELECT koleksiyon_id FROM makale_tr 
	inner join koleksiyon_tr 
	on koleksiyon_tr.k_id = makale_tr.koleksiyon_id";
	
	$calistir=$this->baglanti->prepare($sql);
	$calistir->execute(['k_baslik'=>$koleksiyon_id]);
	$count = $calistir->rowCount();
	return $count;
}
<tr>
  <th>#</th>
  <th>Koleksiyon Adı</th>
  <th>Makale Sayısı</th>
  </tr>
</thead>
<tbody>

<?php
 $veriler=$VT->VeriGetir("koleksiyon_tr","","","ORDER BY ID ASC");
   if($veriler!=false)
    {
        $sira=0;
        for($i=0;$i<count($veriler);$i++)
        {
          $sira++;
          ?>
            <tr>
            <td><?=$sira?></td>
            <td><?php
            echo stripslashes($veriler[$i]["k_baslik"]);
            ?>
            </td>
            <!-- koleksiyon_id ye göre saydırtmam lazım koleksiyon saydırması başarılı değil.-->
            <td><span class="badge bg-success"><?=$count->sayKoleksiyon($i)?></span></td>
           
            </tr>
          <?php
        }

      }

      ?>
 </tbody>
yeni2021
1257 gün önce

Fonksiyonun son hali:

public function sayKoleksiyon($koleksiyon_id){
	$sql="SELECT COUNT(`makale_tr`.`koleksiyon_id`) AS `adet` FROM `makale_tr` 
	INNER JOIN `koleksiyon_tr` ON `koleksiyon_tr`.`k_id` = `makale_tr`.`koleksiyon_id` 
	WHERE `koleksiyon_tr`.`k_id` = :k_baslik";
	
	$calistir=$this->baglanti->prepare($sql);
	$calistir->execute([':k_baslik'=>$koleksiyon_id]);
	$data = $calistir->fetch(PDO::FETCH_ASSOC);
	return $data['adet'];
	}

Aşağıdaki şu kısım ne olmalı?
<td><span class="badge bg-success"><?=$count->sayKoleksiyon($i)?></span></td>

Bu haliyle:

@makifgokce hocam, bir terslik var, sıralama kaymış gibi sayıyor.