[英]how to count rows from a column while using group by
我陷入了计数问题。 任何人都可以看看我下面的代码,并告诉我如何从第一个while循环(即$ query)开始计数。 这是按列分组的两个列,我只想添加另一个列名,而不必仅对行进行分组。 喜欢
"SELECT CountryCode,NetID,COUNT(OpCode) as count FROM activecon WHERE OpCode='$thisActiveOp' GROUP BY CountryCode,NetID"
我尝试了上面的方法,但是我不知道如何用我的底部代码回显此COUNT(OpCode),在这里我用$ countryValue和$ networkValue回显我的表行。
$query=mysql_query("SELECT CountryCode,NetID FROM activecon WHERE OpCode='$thisActiveOp' GROUP BY CountryCode,NetID") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
echo "<tr><td>$thisActiveOp</td>";
$networkID = $row['NetID'];
$countryID = $row['CountryCode'];
$query2=mysql_query("SELECT countryName,networkName FROM connection_details WHERE countryId='$countryID' AND netId='$networkID'") or die(mysql_error());
while($row2 = mysql_fetch_array($query2)) {
$countryValue = $row2['countryName'];
$networkValue = $row2['networkName'];
}
echo "<td>$countryValue</td><td>$networkValue</td></tr>";
}
我认为您建议的代码应该可以工作,因此它将是:
$query=mysql_query("SELECT CountryCode,NetID,COUNT(OpCode) as code FROM activecon WHERE OpCode='$thisActiveOp' GROUP BY CountryCode,NetID") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
echo "<tr><td>$thisActiveOp</td>";
$networkID = $row['NetID'];
$countryID = $row['CountryCode'];
$code = $row['code'];
$query2=mysql_query("SELECT countryName,networkName FROM connection_details WHERE countryId='$countryID' AND netId='$networkID'") or die(mysql_error());
while($row2 = mysql_fetch_array($query2)) {
$countryValue = $row2['countryName'];
$networkValue = $row2['networkName'];
}
echo "<td>$countryValue</td><td>$networkValue</td><td>$code</td></tr>";
}
您可以使用别名来从mysql返回的数组中访问计数。
但是,根据数据的详细信息,您的脚本/ sql可能会简化为该示例(即,假设activecon上每个记录的connection_details上只有1条记录):
<?php
$query=mysql_query("SELECT b.countryName, b.networkName, COUNT(a.OpCode) AS `count`
FROM activecon a
INNER JOIN connection_details b
ON a.CountryCode = b.countryId AND a.NetID = b.netId
WHERE a.OpCode='".mysq_real_escape_string($thisActiveOp)."'
GROUP BY b.countryName, b.networkName") or die(mysql_error());
while($row = mysql_fetch_array($query))
{
echo "<tr><td>$thisActiveOp</td><td>".$row['countryName']."</td><td>".$row['networkName']."</td><td>".$row['count']."</td></tr>";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.