我怎样才能以更好的方式做到这一点?
$query = mysql_query("SELECT * FROM table WHERE region='example1'");
$num_rows_example1 = mysql_num_rows($query);
$query = mysql_query("SELECT * FROM table WHERE region='example2'");
$num_rows_example2 = mysql_num_rows($query);
$query = mysql_query("SELECT * FROM table WHERE region='example3'");
$num_rows_example3 = mysql_num_rows($query);
也许使用Array和Foreach?
谢谢!
答案 0 :(得分:3)
您的查询可能是
SELECT region, count(*) as num_regions FROM table GROUP BY region
现在你只需要执行一个查询,它会返回每个区域的行数!
现在,您可以使用
数组执行一些PHP魔术$regions = array('example1', 'example2', 'example3');
foreach ($regions as $region) {
// do something with the MySQL result
}
请注意您应该停止使用mysql_*
功能。他们被弃用了。而是使用PDO(从PHP 5.1开始支持)或mysqli(从PHP 4.1开始支持)。如果您不确定使用哪一个,read this SO article。
答案 1 :(得分:1)
$query = mysql_query("SELECT region, COUNT(region) AS count FROM table GROUP BY region");
while($row = mysql_fetch_assoc($query)) {
${$row[region]} = $row[count];
}
当你echo $example1;
时,它会产生该区域的计数。
答案 2 :(得分:0)
首先是:
请不要使用mysql_*
函数来编写新代码。它们已不再维护,社区已经开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDO或MySQLi。如果您无法确定哪个,this article会对您有所帮助。如果您选择PDO,here is good tutorial。
现在已经不在了:
$query = "SELECT `region`, count(*) AS `count` FROM `table` GROUP BY `region`";