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


MySQL - PHP - Avoiding multiple queries to count results

我正在尝试获取查询的一些结果,并使用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个查询,有没有任何方法可以在不使用数组的情况下获取行数并然后获取所有结果?

您可以使用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]
}

有没有任何方法可以在不使用数组的情况下获得行数,然后获得所有结果?

有,但你不需要。

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

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

您绝对应该放弃在查询执行过程中直接显示查询结果的做法。相反,学习逻辑分离和模板的使用。