php - 计数和输出特定单词在数据库行中
问题描述
id | username | pass | reply | date |
0 | user1 | MD5 | Access-Accept | date 1 |
1 | user2 | MD5 | Access-Reject | date 2 |
2 | user3 | MD5 | Access-Reject | date 3 |
3 | user4 | MD5 | Access-Accept | date 4 |
试图弄清楚如何计算和显示/输出表中的所有“Access-Accept”和“Access-Reject”。
这是我卡住的地方,当前脚本正在计算所有行,
<?php
// start connection
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = 'SELECT * FROM table_1';
if (mysqli_query($conn, $sql)) {
echo "";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
$result = mysqli_query($conn,$sql);
$totalsum = mysqli_num_rows($result);
mysqli_close($con);
?>
和html
<?php include 'count-words.php';?>
<p>Total access: <?=$totalsum?> Total Sessions!</div></p>
在社区帮助下前进,并注意脚本确实输出了我想要实现的目标。
mysql> SELECT reply, COUNT(reply) FROM radpostauth GROUP BY reply;
+---------------+--------------+
| reply | COUNT(reply) |
+---------------+--------------+
| Access-Accept | 573 |
| Access-Reject | 233 |
+---------------+--------------+
2 rows in set (0.00 sec)
因为 php 和 sql 它不是我的强项,所以我需要一些帮助来输出两行的结果,例如:
<?=$accept?>
<?=$reject?>
解决方案
SELECT reply,COUNT(reply) FROM table GROUP by reply
只是为了解释:
count(reply)
并group by
为您提供列回复中每个单独值的计数。因此 Access-Accept 和 Access-Reject 将被计算在内,以您的示例为例,您将收到:
Reply Count(Reply)
Access-Accept 2
Access-Reject 2
正是您似乎在寻找的东西。
你也可以在AS Reply Count
之后COUNT(reply)
输出回复计数而不是计数(回复)。
推荐阅读
- ms-access - 表 B 弹出窗口在表 A 的第二次尝试时或之后未更新
- aws-lambda - AWS Chalice:多个 python 文件中的路由
- android - Android Studio Google Drive AppFolder 备份和恢复(数据库文件)
- java - jsp 3、jstl 1.2 和 Maven
- google-app-engine - 在 GAE 上部署的 Lumen App 无法连接到 cloud-sql 中的数据库
- java - 多态字符串反序列化
- python - 五分位数错误
- java - 使用 Java 向 HP 4515 打印机发送 PJL 命令
- php - 从本周星期一 18:00 选择值
- javascript - Firebase Cloud Functions 警告:“箭头函数预期没有返回值一致返回”