php - 计算 sql 结果中的重复项并用 PHP 显示

标签 php mysql sql

我正在尝试从 MySQL 表(referrer 列)中检索引用 URL 列表。 referrer 列多次包含相同的 URL,我想计算并打印该 URL 出现的次数。然后按降序打印计数。

我有以下代码,但显然有地方错误

$ref=$icdb->get_row("SELECT COUNT(referrer) AS frequency, referrer FROM url_log WHERE u = '".$dom."' GROUP BY referrer ORDER BY frequency DESC");


foreach ($ref as $details) {
   echo "<td>".$details['referrer']."</td><td>".$details['frequency']."</td>";
}

我已将一些 sql 数据导出为数组:

$url_log = array(
  array('id' => '681','url_id' => '69','options' => '','created_day' => '20140128','created' => '1390945235','deleted' => '0','u' => 'rch.metwitter','referrer' => 'http://www.domain.com/','ipaddr' => '121.223.91.20','browser' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'),
  array('id' => '685','url_id' => '69','options' => '','created_day' => '20140130','created' => '1391115029','deleted' => '0','u' => 'rch.metwitter','referrer' => 'http://www.domain.com/?page=custom&id=69','ipaddr' => '121.223.91.20','browser' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'),
  array('id' => '686','url_id' => '69','options' => '','created_day' => '20140130','created' => '1391116005','deleted' => '0','u' => 'rch.metwitter','referrer' => 'http://www.domain.com/','ipaddr' => '121.223.91.20','browser' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko')
);

foreach 语句给了我:

3 3 小时

最佳答案

我认为您的问题出在 COUNT(1) 上。 我建议将其更改为 COUNT(referrer)。

关于php - 计算 sql 结果中的重复项并用 PHP 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21489658/

相关文章:

php - 在wordpress自定义模板中显示插入的数据

php - 比较数组中的条目并删除重复项(PHP、MySQL)

php - 显示来自 mysql 查询的部分结果

c# - Linq 在一个表中获取父项和子项并在另一个表中计算它们的值

sql - BigQuery COALESCE/IFNULL 类型与文字不匹配

MySQL: "Duplicate entry for key",但在数据库中我们可以看到它不重复

php mySql 更新集将小数向下舍入

php - 返回某个时间段内每天创建、关闭和打开的记录数

php - php和mysql中的多次插入(插入)

使用 Entity Framework 6 异常数据读取器的 C# 存储库模式 SQL 查询与指定实体不兼容