2017-05-18 12 views
-1

グループに属している人数(この例ではgroupe1)と特定の時間(09:00)の間にテーブルをカウントする方法を探しています 実際には私のエコー結果は:2000000000.(実際に私は2つの条件に一致する私のテーブルの2人がいる)。どのように私は結果だけを表示することができ、 "2" はループ内のSUM値

はあなた

ありがとうございました。これは私の実際である(つまり、2 + 0 + 0 .. 0 + 0 0 0 0以外の値+ + + +と言うことです)コード:

$r2=$my->query_array($sql2); 

$counter=0; 

$today=date('H:i',strtotime($row['heure'])); 


    while ($row2=$r2->fetch_array()) { 

     if ($row2['groupe'] == 'groupe1' && $today == '09:00') 
     $counter++ ; 

     } 

echo $counter; 

更新:

while ($row=$r->fetch_array()) { 

     if ($row['type']=='test1') { 
      $sql2 = 'SELECT ... '; //(my request) 

      $r2=$my->query_array($sql2); 

      $counter=0; 
      $today=date('H:i',strtotime($row['heure'])); 

       while ($row2=$r2->fetch_array()) { 

       if ($row2['libellee'] == 'groupe1' && $today == '09:00') 
       $counter++ ; 

    $t.= '<tr><td class="text">'.$txt_annule.'&nbsp;  '.$row2['nom'].' '.$row2['prenom'].'</td>'.PHP_EOL; 
    $t.= '<td class="text">'.date('H:i',strtotime($row2['heure'])).'</td>'.PHP_EOL; 
    $t.= '<td class="text">'.$row2['libellee'].' </td>'.PHP_EOL; 
    $t.= '</tr>'.PHP_EOL; 
     } 

     echo $counter;  
     } 

      else if ($row['type']=='test2') { 

     $t.= '<tr><td class="text">'.$txt_annule.'&nbsp;&nbsp '.$row2['nom'].' '.$row2['prenom'].'</td>'.PHP_EOL; 
     $t.= '<td class="text">'.date('H:i',strtotime($row2['heure'])).'</td>'.PHP_EOL; 
     $t.= '<td class="text">'.$row2['libellee'].' </td>'.PHP_EOL; 
     $t.= '</tr>'.PHP_EOL;  
      }  
    } 
+2

このコードは、 '2000000000'を出力すべきではありません。実際のコードを表示してください。 – CBroe

+1

このコードは、あなたが言った出力を生成する方法はありません。 – Tom

+0

'$ counter = 0;'をwhileループの前に設定します – RST

答えて

0

ちょっとあなただけの最もエレガントな解決策であればわからない、このようにしてみてくださいすることはできませんが、私は推測動作します

$counter = 0;  
while ($row2=$r2->fetch_array()) { 
    if ($row2['groupe'] == 'groupe1' && $today == '09:00') { 
     $newCount = $counter+1; 
     $counter = $newCount; 
    } 
    } 

    echo $newCount; 
+0

私は自分のコードをすべて投稿します。私の最初の投稿を更新してください –

+0

上記のコードは動作しませんでしたか? –

0

すべてのレコードを取得してカウントするのではなく、純粋なSQLソリューションを使用することを検討してください。データベーステーブルが増加すると、パフォーマンスの問題が発生する可能性があります。 例:

SELECT COUNT(*) FROM people WHERE groupe = 5 and TIME(heure) = '09:00' 

このクエリは正確な人数を返します。