3

日付ごとの一意の IP の数を知るために、このクエリを実行しています。実際には、日付ごとの一意の IP の数だけでなく、日付自体も PHP で返す必要があります。どうすればいいですか?

function getTotUniqueVisitsDay($id) {
    $query="SELECT COUNT(DISTINCT user_ip) FROM campaigns_visitors WHERE campaign_id = ".$id." group by date";
    $result = mysql_query($query) or die("Getting tot unique visits by day failed: " . mysql_error());   
    $visits_by_day = mysql_num_rows($result);
    return $visits_by_day;   
}
4

3 に答える 3

1

あなたのクエリは

SELECT COUNT(DISTINCT user_ip)
FROM campaigns_visitors
WHERE campaign_id = ?
GROUP BY date

あなたが見つけたように、これは返さdateれません。

あなたはもっと運がいいはずです

SELECT COUNT(DISTINCT user_ip), date
FROM campaigns_visitors
WHERE campaign_id = ?
GROUP BY date

他の人は、準備済みステートメントとmysqliルーチンを使用することを推奨する可能性があります。あなたのクエリを準備できる形式に変換しました。

PHP を構築して、変更されたステートメントを操作できると信じています。

于 2013-06-07T10:05:41.187 に答える
0

ベスト プラクティスは、日付を last_updated および date_created 列として保存することです。この投稿では、任意のテーブルの更新日を取得する方法を提案して います MySQL テーブルが最後に更新されたのはいつですか?

次の投稿によると、テーブルの特定の行の更新日を取得できません MySQLでレコード更新の日付を取得する方法

于 2013-06-07T10:14:51.393 に答える
0
function getTotUniqueVisitsDay($id) {
    $query="SELECT date_field FROM campaigns_visitors WHERE campaign_id = ".$id." group by date_field";
    $result = mysql_query($query) or die("Getting tot unique visits by day failed: " . mysql_error());   
    $visits_by_day = mysql_num_rows($result);
    $visits_by_day['count'] = count($visits_by_day);
    return $visits_by_day;   
}
于 2013-06-07T10:15:13.723 に答える