PHP SQL sorgusu için kibrit sayısını sayma

3 Cevap php

Nasıl iki değişken eşleşen satır sayısını sayma hakkında gitmek istiyorsunuz?

users: Ben adında bir tablo var

ve alanlar seslendi: username & referral

comments: Ben denilen başka bir tablo var

ve alanlar seslendi: * comment_username *

Bu durum, ben belirli bir kullanıcı sevk ettiğini, en az 10 yorum (comments 'tablosunda satırlar) ile tavsiyelerin sayıda almak gerekir.

Yani ben kodu bu ham taslak gibi bir şey olmalıdır düşünüyordum.

    $username = 'bob';
$validrefferalcount = 0;
function validreferrals($username){

    $referreduser = SQL select * from users where referral='$username';

    foreach ($referreduser)   {

    $numberofcomments = SQL count * from comments where comment_username ='$referreduser';
if ($numberofcomments >= 10){
$validreferralcount = $validreferralcount + 1;
}

    }
return $validreferralcount;
    }

Ben kötü sözdizimi, vs için özür dilerim ..

Okuduğunuz için teşekkürler.

3 Cevap

Bu sorgu ne:

SELECT COUNT(*) FROM (
    SELECT username, COUNT(*) AS c_comments
    FROM users
        JOIN comments ON username = comment_username
    WHERE referral = 'referral'
    GROUP BY username
) t
WHERE t.c_comments > 10;

Sen durumda JOIN kullanmalısınız. Gibi bir şey (eğer doğru anlamak)

SELECT count(*) FROM users 
   RIGHT JOIN comments ON comments.comment_username = users.username 
   WHERE users.referral = '$username'

Daha fazla bilgi bulabilirsiniz here

Benim gerçek Mesajı sayısı henüz yorum yapmak için izin vermediğinden, Hıristiyanlar için bazı eklemeler cevap.

Bir sayımı karşı fıkra, yani> = 10 koşula sahip eşleşen iyi bir fikir olurdu