【问题标题】:PHP Mysql COUNT results in a double loopPHP Mysql COUNT 导致双循环
【发布时间】:2013-04-19 13:04:26
【问题描述】:

如果我有两个循环,我想知道如何计算结果! :

$select = "SELECT X FROM Y"

$result = mysql_query($select,$link);

$total = mysql_num_rows($result);

while($row = mysql_fetch_array($result)) {

    $Name = $row['X'];
    $select2 = "SELECT id FROM `".$Name."` ";
    $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
    $total2 = mysql_num_rows($result2);
    while($row2 = mysql_fetch_array($result2)) { echo $row2['id']} }

我想数一数我最后有多少个 id 。感谢您的帮助

【问题讨论】:

  • 哪个结果?有什么想法吗?
  • 数一下我最后得到的id
  • 看我的回答@Moon's Light
  • 使用 SELECT COUNT(X) AS countX FROM Y

标签: php mysql loops count while-loop


【解决方案1】:

给这个

$select = "SELECT X FROM Y"

$result = mysql_query($select,$link);

$total = mysql_num_rows($result);

$finalTotal=0;
while($row = mysql_fetch_array($result)) {

$Name = $row['X'];
$select2 = "SELECT id FROM `".$Name."` ";
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
$total2 = mysql_num_rows($result2);
 $finalTotal = $finalTotal + $total2;
while($row2 = mysql_fetch_array($result2)) { echo $row2['id'];} }

echo "total id is ".$finalTotal;

$finalTotal 会显示 id 的总数

【讨论】:

  • 这意味着我可以在不进行第二次循环的情况下获得我有多少个 id ?
  • 你必须在第二个 while 循环中看到我的声明,我在这里添加 id $finalTotal = $finalTotal + $total2;
  • 这通常不是从数据库中计算所需字段的好方法
  • 但是这里的查询正在获取 'id' 并且显然 $result2 必须有 id ,因此 $count2 会间接地给出我们什么,从逻辑上讲它是有效的。
  • 它有效,但仍然存在问题,因为我必须限制 0,60 以限制结果,否则我将有 100.000 个结果,此方法仅显示 60 个结果,我如何计算所有结果那么呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 2018-04-15
  • 2014-04-22
相关资源
最近更新 更多