Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在while循环中添加值_Php_Mysql_Function_Sum_While Loop - Fatal编程技术网

Php 在while循环中添加值

Php 在while循环中添加值,php,mysql,function,sum,while-loop,Php,Mysql,Function,Sum,While Loop,在下面代码中的第一个查询中,我正在查找在柏林进行的第二个游戏下的检查 对于第二个问题,我想为每个检查打分 正如您将看到的,我使用的是SUM函数。但是假设我有两次检查,每次检查的分数是50分。好的,我没有回显100,而是用这个代码回显5050 怎么了 非常感谢 代码已更正并正常工作,以防有人需要它。感谢所有人 $querya = "SELECT * FROM checkins where gamesid=2 and city='Berlin'"; $resulta = mysql_

在下面代码中的第一个查询中,我正在查找在柏林进行的第二个游戏下的检查

对于第二个问题,我想为每个检查打分

正如您将看到的,我使用的是SUM函数。但是假设我有两次检查,每次检查的分数是50分。好的,我没有回显100,而是用这个代码回显5050

怎么了

非常感谢

代码已更正并正常工作,以防有人需要它。感谢所有人

       $querya = "SELECT * FROM checkins where gamesid=2 and city='Berlin'";
 $resulta = mysql_query($querya) or die(mysql_error());

 $sumOfPoints = 0;
 while($rowa = mysql_fetch_array($resulta)){

      $n = $rowa['venuesid'];
      $queryb = "SELECT venuesid, SUM(points) as sumpoints from venues where venuesid='".$n."' GROUP BY venuesid ORDER BY venuesid";
      $resultb = mysql_query($queryb) or die(mysql_error());

      while($rowb = mysql_fetch_array($resultb)){

           $sumOfPoints +=  $rowb['sumpoints'];

      }

 }


  echo "Total points is $sumOfPoints<br/>";
$querya=“从gamesid=2和city='Berlin'的签入中选择*;
$resulta=mysql\u query($querya)或die(mysql\u error());
$sumOfPoints=0;
while($rowa=mysql\u fetch\u数组($resulta)){
$n=$rowa['venuesid'];
$queryb=“选择venuesid,SUM(点)作为venuesid=”“$n.”“按venuesid分组,按venuesid排序”的场馆的sumpoints”;
$resultb=mysql\u query($queryb)或die(mysql\u error());
while($rowb=mysql\u fetch\u数组($resultb)){
$sumOfPoints+=$rowb['sumpoints'];
}
}
echo“总分为$sumOfPoints
”;
点必须是字符串,您需要强制转换它

SUM(cast(points) as int)

然后遵循Gaurav关于标记计算的观点,因为您的脚本在循环的两次迭代中重复了
50
,所以您将得到
5050

从外观上看,您的第二个查询的
groupby
子句没有按
venuesid
进行分组。因此,首先尝试将GROUP BY子句更改为:

按venuesid分组

如果这没有给出您要查找的结果,那么您应该尝试直接对数据库运行查询,使用
venuesid
的静态值查看您从中得到了什么,然后可能会更新您的问题,我们可以从中获得一些建议。

  • 使用
    总和(点数)作为总和
    (仅在使用总和时为清楚起见)

  • 检查点是否为数值字段而不是varchar


  • 为什么它会回显
    100
    ?如果您有两个签入,那么外部循环将始终触发两次。如果您希望看到任何东西,
    100100
    。这应该是while循环之外的echo,否则它将继续循环,$rowb=mysql\u fetch\u array($resultb);echo$rowb[‘总和(点数)’);