-2

我有一个名为 ptb_profile_views 的表;

id  |  profile_id  |  viewed_profile  |  date

1          1               5
2          1               5
3          1               5
4          2               5
5          3               5

好的,所以在这个例子中,用户 1,2 和 3 正在检查用户 5 的个人资料,

我在这里得到的 mysql 是假设计算用户获得的查看次数,但是在用户 1 已经多次签出用户 5 的情况下,我不想返回重复的行,

因此,与其说用户 5 被查看了 5 次,不如说他们实际上只被查看了 3 次,因为我只想计算不同的值。

继承人我的mysql有人可以帮助我:

function check_profile_views() {
            global $connection;
            global $_SESSION;
            $query = "SELECT COUNT(profile_id) FROM ptb_profile_views WHERE viewed_profile_id=".$_SESSION['user_id']." AND profile_id!='0'";
            $check_profile_views_set = mysql_query($query, $connection);
            confirm_query($check_profile_views_set);
            return $check_profile_views_set;        
        }

php:

$check_profile_views_set = check_profile_views();
while ($views = mysql_fetch_array($check_profile_views_set)) {  
?>
<? echo"". $views['COUNT(profile_id)'] ."";?> viewed your profile
4

1 回答 1

10

只需添加DISTINCT

SELECT COUNT(DISTINCT profile_id) totalCOUNT FROM ptb_profile_views...

并回显别名,

$views['totalCOUNT']
于 2013-04-08T03:18:48.793 回答