MySQL - PHP - 避免多个查询来计算结果

时间:2016-05-12 18:31:50

标签: php mysql mysqli

我正在尝试获取查询的一些结果,并使用PHP计算所有数据结果。

其实我做的是这样的事情:

$MQ=$cnx->query("SELECT COUNT(id) FROM table WHERE field=1;");
$MFA=$cnx->fetch_row();
$count=$MFA[0];
echo "Showing $count results";
$MQ=$cnx->query("SELECT id,name FROM table WHERE field=1;");
while($MFA=$MQ->fetch_assoc()){
  // show something with $MFA[id] and $MFA[name]
}

我想避免使用2个查询,有没有办法让行计数,然后然后获得所有结果而不使用数组?

2 个答案:

答案 0 :(得分:3)

您可以使用num_rows属性获取结果集中的行数。

$MQ=$cnx->query("SELECT id,name FROM table WHERE field=1;");
$count=$MQ->num_rows;
echo "Showing $count results";
while($MFA=$MQ->fetch_assoc()){
  // show something with $MFA[id] and $MFA[name]
}

答案 1 :(得分:-3)

  

有没有办法获取行数,然后在不使用数组的情况下获得所有结果?

有,但你不需要它。

事实上,你应该使用数组,将业务逻辑与表示逻辑分开。

只要你有一个数组,你就可以随时计算它的成员。

您绝对应该放弃在查询执行期间正确显示查询结果的做法。相反,学习逻辑分离和模板的使用。