Php 在while循环中添加值
在下面代码中的第一个查询中,我正在查找在柏林进行的第二个游戏下的检查 对于第二个问题,我想为每个检查打分 正如您将看到的,我使用的是SUM函数。但是假设我有两次检查,每次检查的分数是50分。好的,我没有回显100,而是用这个代码回显5050 怎么了 非常感谢 代码已更正并正常工作,以防有人需要它。感谢所有人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_
$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[‘总和(点数)’);