MySQL& PHP获取每种类型的记录数

时间:2011-09-22 14:50:21

标签: php mysql

我有一个MySQL数据库表,它包含我需要的6种类型的记录,以获取每种类型的记录总数,然后为每一个结果创建一个变量,例如

wt = 3 spv = 33 shw = 78

依旧......

我写了这段代码

$tquery = "SELECT equipment, COUNT(id) AS num FROM contract GROUP BY equipment"; 
$tresult = mysql_query($tquery) or die(mysql_error());
while($trow = mysql_fetch_array($tresult)){
echo "There are ". $trow['COUNT(id)'] ." ". $trow['equipment'] ." items.";
echo "<br />";
}

每个类型需要一个变量的原因是我需要计算一个百分比值来在图表中显示这些数据,我已经编写了这段代码,只要我从表中获得正确的数据就可以正常工作

任何帮助都会很棒,谢谢

2 个答案:

答案 0 :(得分:2)

首先,在您引用$trow['COUNT(id)']的地方,这是不正确的;它应该以名称num(在SQL查询中定义)返回给您,因此您实际应该使用$trow['num']

现在存储您的总计:

创建一个包含总计的数组。让我们称之为$total。将其定义为while循环外的空数组:

$total = array();

然后在循环内部,为包含设备类型的$total数组指定一个新元素作为键,并将计数作为值:

$total[$trow['equipment']] = $trow['num'];

当循环结束时,您应该有一个包含所有总计的数组,您可以对其进行计算。 PHP为您提供了array_sum()count()函数(以及许多其他方便的函数),这些函数应该足以让您开始计算平均值和百分比。

希望有所帮助。

答案 1 :(得分:0)

尝试类似:

$tquery = "SELECT equipment, COUNT(id) AS num FROM contract GROUP BY equipment";
$tresult = mysql_query($tquery) or die(mysql_error());
while ($tabl = mysql_fetch_array($tresult)){
       echo "There are " . $tabl['num'] . " of " . $tabl['equipment'] . ".<br />";
}