在PHP中迭代返回的SELECT计数

在PHP中迭代返回的SELECT计数,php,sql,pdo,Php,Sql,Pdo,我有一个名为“事件”的SQL表,其中保存了有关学校行为事件的信息 我有下面的SQL语句,它返回每个“类型”的出现次数 SELECT `type`, count(*) FROM `incidents` WHERE `studentID` = :id GROUP BY `type` 基本上,我希望创建一个图表,在“事件”表中显示每种事件类型的发生次数 我把它返回的东西都扔掉了,我得到了这个 array(2) { [0]=> array(4) { ["type"]

我有一个名为“事件”的SQL表,其中保存了有关学校行为事件的信息

我有下面的SQL语句,它返回每个“类型”的出现次数

SELECT `type`, count(*) FROM `incidents` WHERE `studentID` = :id GROUP BY `type`
基本上,我希望创建一个图表,在“事件”表中显示每种事件类型的发生次数

我把它返回的东西都扔掉了,我得到了这个

array(2) { 
    [0]=> array(4) { ["type"]=> string(9) "Classwork" [0]=> string(9) "Classwork" ["count(*)"]=> string(1) "3" [1]=> string(1) "3" } 
    [1]=> array(4) { ["type"]=> string(8) "Bullying" [0]=> string(8) "Bullying" ["count(*)"]=> string(1) "1" [1]=> string(1) "1" } 
}
我真的很难解析它来创建有意义的输出。我如何循环这个数组并输出每个事件类型的数量?例如,要输出:

3 classwork incident
1 bullying incident
我试着用foreach测试输出,但它只是说我不能用“type”偏移数组


因为$rows是一个包含其他数组(矩阵)的数组,所以循环可能需要2个。试试这个:

for(int $i=0;$i < count($rows); $i++){
 for(int $j=0; $j< count($rows[i]); $j++).  {
     echo $rows[$i][$j];
   }
echo $rows[$i]["type"];
echo $rows[$i]["count*"];
for(int$i=0;$i

}

我建议首先为“count(*)提供一个别名。例如:碳纳米管

然后切换
$项目
$行

foreach($rows as $item){
    echo($item["cnt"]);
}
此外,您还可以尝试使用
,而使用
fetch(PDO::fetch_ASSOC)
进行
循环,这样它只返回一次具有关联名称的值。如果HTML不是您想要的输出,请在“事件”之后使用
\n
而不是

循环将按要求输出:

3 classwork incident
1 bullying incident

你试过什么吗?你能用你的代码更新这个问题吗?只需循环返回值并从每一行回显你想要的索引。我已经用我的尝试更新了这个问题。问题是我不知道如何迭代可以将所有数据存储到一个表中,并获取您想要的任何内容
选择
类型
studentID`,count(*)cnt FROM
事件
分组依据
studentID
,`type``可能,但我不知道如何仅使用该信息,因为
$rows[$I]
是命名元素和编号元素的混合体。另外,您的大多数变量都缺少
$
。您是对的@Barmar。我正在编辑,如果你打印所有数组元素,你会得到重复的数据,因为OP显然使用了
PDO::FETCH_tware
Ok,那么你怎么做呢?不需要内部循环。只需打印所需的列<代码>回显$rows[$i]['count(*)']。" " . $行[$i]['type']
SELECT `type`, count(*) as cnt FROM `incidents` WHERE `studentID` = :studentID GROUP BY `type`
foreach($rows as $item){
    echo($item["cnt"]);
}
while ($row = $stmtUsr2->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT)) {
    echo $row['cnt'] . " " . $row['type'] . " incident<br>";
}
array(2) { 
    [0]=> array(2) { ["type"]=> string(9) "Classwork" ["cnt"]=> string(1) "3" } 
    [1]=> array(2) { ["type"]=> string(8) "Bullying" ["cnt"]=> string(1) "1" } 
}
3 classwork incident
1 bullying incident