0

我怎样才能以更好的方式做到这一点?

$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);    

也许有一个数组和 Foreach?

谢谢!

4

3 回答 3

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 开始支持)。如果您不确定要使用哪一个,请阅读这篇 SO 文章

于 2012-08-09T18:31:32.083 回答
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;生成该区域的计数时。

于 2012-08-09T18:34:04.847 回答
0

首先也是最重要的:

请不要使用mysql_*函数来编写新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?相反,您应该了解准备好的语句并使用PDOMySQLi。如果你不能决定哪个,这篇文章会帮助你。如果您选择 PDO,这里有很好的教程

现在已经不碍事了:

$query = "SELECT `region`, count(*) AS `count` FROM `table` GROUP BY `region`";
于 2012-08-09T18:31:39.797 回答