2016-04-17 21 views
2

を持っているどのように多くの行を見つける:PHP /データベース:私はこのようなSQL文を持っているコンテンツ

$stmtTHIS = $db->query("SELECT titel, done_date FROM task WHERE project = $tID "); 

がどのように私は「done_date」のコンテンツを持っているどのように多くの行を見つけることができますか?

+0

私はそれがマニュアルのどこかにあると確信しています。マニュアルを読む –

+0

SQL COUNTを実行するか、このクエリの結果を処理して数を計算することを意味しますか – RiggsFolly

+0

Shure、しかし私の心はちょっと詰まっています:-)ヒント? – DragonStyle

答えて

2

まず、「コンテンツがある」という意味を定義する必要があります。次に、それらを見つけるためにWHERE句を作成します。また、COUNT関数を使用して、返される行数を数えます。だから、 "持っている"と言うことは、フィールドがnullでないことを意味します。

SELECT COUNT(*) FROM task WHERE project = $tID AND done_date IS NOT NULL 

これは、そのプロジェクトIDを持つすべてのレコードをカウントし、done_dateの値を持ちます。

あなたはまた、他のいくつかの空の空の文字列のような値または0を持っていないことdone_dateをチェックすることもできます

AND done_date != "" AND done_date !=0

代替:

使用しますが、これらすべての行を取得する必要がありますクエリPHPでカウントしてください:

$stmtTHIS = $db->query("SELECT titel, done_date FROM task WHERE project = $tID "); 

$count = 0; 
while($row = $stmtTHIS->fetchAssoc()){ 
    //You probably want to do other stiff with the data 
    if(!empty($row['done_date'])){ 
     $count++; 
    } 
} 
echo $count; 

あなたのコードはtによって多少異なる場合があります彼はあなたのDBライブラリを使用して、(私はmysqliと仮定)

+0

ありがとうございます。それは動作します。 – DragonStyle