2012-11-14 24 views
6

Bu konuda bana yardımcı olacak birine ihtiyacım var. Kafam bugün düz düşünmek istemiyor.Her bir geri çekime yorumları sayın mı?

Yani "recensions" adında bir tablom var ve başka bir "yorum" olarak adlandırılmış. Her tabloda "amne_id" adında bir sütun var. Bu, yorumları doğru doğrulamaya bağlayabiliyordu.

Şimdi benim ilk sayfasında, ben sadece kod ile tüm nüshaların olsun:

$rec = $this->db->get('recensions'); 

İstediğim her Geçirme sahip kaç yorum saymaktır. Ama nasıl bir fikrim yok. Sanırım JOIN ve num_rows() kullanmalı mıyım?

Lütfen anlamadığınız takdirde sorun, daha iyi açıklayabiliyorum.

İyi günler!

+0

Ben Codeigniter olacak bilmiyorum ama sorun rec olarak rec.amne_id = com.amne_id AÇIK com gibi yorumların KATILIN nüshaların gelen tot_comments olarak LIKE 'SEÇ sayımı (rec.amne_id) JOIN taşımaktadır ' –

cevap

2
$this->db->select('COUNT(*) as count, recensions.anme_id as recension_id') 
->from('recensions') 
->join('comments','recensions.anme_id = comments.anme_id','left') 
->group_by('anme_id'); 
$result = $this->db->get(); 

size nüshaların kimliği ve yorumunu vermeli Bu kimlik için sayın.

sonra döngü: Bunun gibi

foreach($result->result() as $row){ 
    echo "Recension id $row->recension_id has $row->count comments<br />"; 
} 
+0

Değiştirmeliyim" $ rec = $ this-> db-> get ('recensions ');" az önce ne yazdın? – Zacharias

+0

Size kalmış. Tüm sonuçları istemiyorsanız, o zaman değiştirin. Tüm ödemelerinizi saklamak istiyorsanız, onu değiştirmeyin. Ne gönderdim, recension.anme_id ve bu anme_id için yorumların sayısı ile size bir nesne verecektir. – stormdrain

+0

Sonucu nasıl yazdırmalıyım? Bir foreach döngü kullanarak veya? Benim küçük bilgi için özür dilerim, Codeigniter içine yeni im :) – Zacharias

0

Ben kullandığınız veritabanı bağlayıcı bilmem ama saf SQL (connection recensions.id=comments.anme_id bağlantısı varsayarak), şunu deneyin:

SELECT COUNT(comments.id), anme_id 
FROM recensions 
LEFT JOIN comments on comments.anme_id=recensions.id 
GROUP BY anme_id 
+0

Hm, bu kodu denediğimde bir hata aldım. "SQL sözdiziminde bir hata var; doğru sözdizimine karşılık gelen MySQL sunucu sürümünüze karşılık gelen kılavuzu kontrol edin" *) " – Zacharias

0

??

$sql = mysql_query("SELECT * FROM recensions"); 
while($row = mysql_fetch_array($sql)){ 
$amne_id = $row{"amne_id"}; 
$sql2 = mysql_query("SELECT * FROM comments WHERE amne_id='$amne_id'"); 
$total_comments = mysql_num_rows($sql2); 
echo $total_comments; 
} 
İlgili konular