如何使用PHP统计数据库表中相同数据的出现次数总和
PHP实现数据库字段值出现次数统计方案
前置假设
我们假设你提供的数据库表名为user_data,待统计的字段名为type,你可以根据实际表结构替换对应名称。
实现代码(PDO版本,推荐,防SQL注入)
<?php // 数据库配置 $host = 'localhost'; $dbname = '你的数据库名'; $username = '数据库账号'; $password = '数据库密码'; try { // 建立PDO连接 $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 分组统计SQL,直接在数据库层完成统计,效率更高 $sql = "SELECT `type`, COUNT(*) AS `occur_count` FROM `user_data` GROUP BY `type` ORDER BY `type`"; $stmt = $pdo->query($sql); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); // 输出结果 foreach ($result as $item) { echo "{$item['type']}的出现次数:{$item['occur_count']}<br>"; } } catch(PDOException $e) { echo "数据库操作出错:" . $e->getMessage(); } ?>
实现代码(MySQLi版本)
如果你习惯用MySQLi,可以用以下写法:
<?php // 数据库配置 $host = 'localhost'; $dbname = '你的数据库名'; $username = '数据库账号'; $password = '数据库密码'; // 建立连接 $conn = new mysqli($host, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } $conn->set_charset('utf8mb4'); // 执行统计查询 $sql = "SELECT `type`, COUNT(*) AS `occur_count` FROM `user_data` GROUP BY `type` ORDER BY `type`"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "{$row['type']}的出现次数:{$row['occur_count']}<br>"; } } else { echo "没有匹配的数据"; } $conn->close(); ?>
说明
如果需要只统计A、B、C三类,可以在SQL里加WHERE条件:WHERE type IN ('A','B','C')即可。
内容的提问来源于stack exchange,提问作者Vishal Vishwakarma
相关产品推荐
相关产品推荐

