我想计算积极,中立,负面反馈的数量。
我有3个看起来非常相似的查询。有没有办法可以将所有这些放入一个查询中?或者它是最简洁的方式吗?
提前致谢,问候。
$total_positive_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback
WHERE seller='$user' AND feedback='positive'"));
$total_neutral_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback
WHERE seller='$user' AND feedback='neutral'"));
$total_negative_seller = mysql_num_rows(mysql_query("SELECT id FROM feedback
WHERE seller='$user' AND feedback='negative'"));
答案 0 :(得分:6)
如果您只想计算外观,则使用mysql_num_rows
效率相当低。最好使用MySQL的count(*)
功能,如下面的查询:
SELECT feedback, count(*) AS `count`
FROM feedback
WHERE seller='$user'
GROUP BY feedback
这给你一些看起来像下面的内容
feedback | count
----------------
positive | 12
neutral | 8
negative | 3
您可以随后以行方式解析此任何其他查询结果。
修改强>
如果您想在以下代码中单独处理每个条目,可以使用以下内容。在此代码之后,您可以引用所有条目,例如$result['positive']
。
$qres = mysql_query( 'SELECT ...' );
$result = array();
while( $row = mysql_fetch_array( $qres ) ) {
$result[ $row['feedback' ] ] = $row['count'];
}