-1

このようなテーブルクリックがあります

+-----+-----+-------+-------+
|  id |   time   |   site   |
+-----+-----+-------+-------+
|  1  | 8 4 2013 |   site1  |
|  2  | 8 4 2013 |   site1  |
|  3  | 9 4 2013 |   site2  | 
|  4  | 6 4 2013 |   site1  |
+-----+-----+------+--------+

このような結果を表示したい

   Date      |       Count
  8 4 2013   |       2 click
  6 4 2013   |       1 click

私はこのコードを持っています

$id = 'site1';
$getclk = mysql_query("SELECT * FROM clicks WHERE site='$id'");
$clk = mysql_num_rows($getclk);
print $clk;

このコードは行数のみを表示し、時間ごとにグループ化された行数を表示したいと考えています。

GROUP BY コマンドはこれで機能しますが、これを行う方法がわかりません。

これを行う方法がわかりません。これを行うための完全なコードを教えてください。

4

5 に答える 5

1

私はそれがあるべきだと思います:

SELECT COUNT (id) as countClicks, time as Date
FROM clicks
[WHERE site = ?]
GROUP BY time
ORDER BY countClicks DESC

また、mysql_* 関数は非推奨であるため、使用しないでください。

于 2013-08-13T07:50:22.457 に答える
0

これにより、要求した形式の結果が得られるはずです。

$getclk = mysql_query("select time as Date, concat(count(*), ' click') as Count 
                       from Clicks 
                       where site = '$id' 
                       group by time 
                       order by Count desc");

データベースサーバーから転送されるデータが少なくなるように、mysql ではなく php でこのテキストを追加する場合は、列 の下の時間でグループ化されたレコード数にテキストをconcat()追加するために mysql 関数 function を使用する方がよいことに注意してください。clickCount

他の回答者によってすでに認識されているように、mysql_関数は非推奨です。新しいコードにはmysqliまたはを使用する必要があります。pdo

于 2013-08-13T07:58:01.593 に答える
0

以下のようにクエリを書きます

$id = 'site1';
$getclk = mysql_query("SELECT count(id) as clcount,time FROM clicks WHERE site='$id' group by time order by time");
$clk = mysql_num_rows($getclk);
print_r($clk);
于 2013-08-13T07:59:06.327 に答える
0
$getclk="SELECT date,count(*) as c FROM Clicks WHERE site='$id' GROUP BY date ORDER BY c DESC";

次に、結果をループして表示します。 please give me full code to do this.申し訳ありませんが、そのための適切なフォーラムではありません

于 2013-08-13T07:49:10.483 に答える