0

このクエリにwhere句を追加するのに問題があります。「SATAM/SUNPM」の列が「yes」であり、「confirmed」の列が「yes」である場所から選択したいと思います。

これは、'WHERE shift_times ='SAT AM / SUN PM'なしで機能します-これでは何も出力されません:

        $query = "SELECT position, COUNT(confirmed) FROM volConfirm WHERE shift_times='SAT AM/SUN PM' GROUP BY position"; 

    $result = mysql_query($query) or die(mysql_error());

    // Print out result
    while($row = mysql_fetch_array($result)){
        echo "There are ". $row['COUNT(confirmed)'] ." ". $row['position'] ." " . $row['shift_times'] . " volunteers.";
        echo "<br />";

もう少し情報:テーブルには、「yes」または「0」(noの場合)で確認されたレコードが含まれ、shift_timesはSAT AM /SUNPMまたはSATPM/SUNAMのいずれかです。いくつかの異なる位置があります。私はso-ishのように最終結果を表示しようとしています:

「SATAM/SUNPM」の「アート」ボランティアは「30人」です。

「SATPM/SUNAM」の「アート」ボランティア30名

理想的には、行が回転するので、その下のエコーは「SAT PM / SUN AM」の逆データになりますが、少し注意が必要です...

4

1 に答える 1

3

selectステートメントを変更して、シフト時間で選択およびグループ化するようにしました。これにより、シフト時間ごとに、位置ごとに1つの行が選択されます。count()に「cnt」のエイリアスを追加し、echoステートメントでcntを使用するようにphpを更新しました。whileループの最後に閉じ括弧がありません(コピーアンドペーストの問題である可能性があります)

$query = "SELECT COUNT(confirmed) as cnt
          , position
          , shift_times 
         FROM volConfirm 
         WHERE confirmed='yes'  
         GROUP BY shift_times, position
         order by shift_times, position"; 

$result = mysql_query($query) or die(mysql_error());

// Print out result
while($row = mysql_fetch_array($result))
{
    echo "There are ". $row['cnt'] ." ". $row['position'] ." " . $row['shift_times'] . " volunteers.";
    echo "<br />";
}
于 2012-05-09T05:51:58.200 に答える