我有一个这样的表类型:
id cat
_________
1 A
2 B
3 A
4 A
5 B
我用来查询数据库的代码是这样的:
$query="SELECT*FROM types";
$res=myslqi_query($conn,$query)
while($row=myslqi_fetch_assoc($res){
if($row['cat']==A){
echo count($row['cat'];
};
};
我通过count()函数得到这种类型的代码错误。
是否有可能像AAA一样显示ti才能显示像3一样的数字?
答案 0 :(得分:0)
是否有可能像AAA一样显示ti才能显示像3一样的数字
只能将“ cat”字段中的值的总数显示为数字。因此,如果具有A的三个值表示结果只是数字3
尝试
<?php
$rows = [
['id'=>1, 'cat'=>'A'],
['id'=>2, 'cat'=>'B'],
['id'=>3, 'cat'=>'A'],
['id'=>4, 'cat'=>'A'],
['id'=>5, 'cat'=>'B']
];
print_r( array_count_values( array_column($rows,'cat') ) );
输出
Array
(
[A] => 3
[B] => 2
)
值是每个“猫”的出现次数
我不知道那是不是您想要的,但这就像魔术贴。.不是那个笑话,它只是代码。
Array Column仅返回多维数组中单个列的值,因此在此示例中,它返回
[
'A',
'B',
'A',
'A',
'B'
]
然后对数组进行计数,对单个数组中每个值的所有出现进行计数,并将结果显示在开头。
为此,您需要数据库中数据的全部结果,因此您可以使用此while($row=myslqi_fetch_assoc($res){
来获取所有数据,并在循环中将每一行添加到结果$rows[] = $row
中,或者您可以执行以下操作: $rows =mysqli_fetch_all($res,MYSQLI_ASSOC)
http://php.net/manual/en/function.array-column.php
http://php.net/manual/en/function.array-count-values.php
当然,您也可以只在MySQL中完成
SELECT count(id) as total FROM types GROUP BY cat.
但无论如何...
干杯希望能帮上忙。