0

データベースには項目 68 とユーザー 1 の 5 つの行があるため、次の例では数値 "5" が出力されると予想されます。しかし、代わりにこの出力 "12345" が得られます。

$resultb4 = mysql_query("SELECT COUNT(comparedRating) FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1");
while($rowb4 = mysql_fetch_array($resultb4)){
    $countcomparedratings=$rowb4['COUNT(comparedRating)'];
}
echo $countcomparedratings;

私は何を間違っていますか?

4

1 に答える 1

1

12345 を取得する理由は、クエリが 5 つの結果を返し、カウントを出力するコードが単にクエリから返された配列の連結を出力しているためです。

データベース構造を理解していないので、'12345' を取得している理由は GROUP BY 句に関係していると思います。MySQLWOrkbench などのプログラムを使用してデータベースに接続し、クエリをコードに含める前にテストします。クエリをデバッグするのは時間を節約するテクニックです。

また、列名を参照するときに単純にエイリアスを参照できるように、COUNT 値にエイリアスを設定します。

SELECT COUNT(comparedRating) as ratingCount FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1");
于 2012-09-08T00:12:39.187 に答える