Php 尝试将查询结果乘以总数 问题
我生成了一个查询,以确定每个房间的人均总成本和房间内的总人数;每个人的总成本正确返回,房间内的总人数也正确返回;然而,当我尝试对总数进行小乘法时,我只是得到了我想要乘法的数字的显示 例如: 每人价格=1207美元 房间内总人数=2人 查询结果。。。"1207*2" ... 问题: 我敢肯定这是件愚蠢或次要的事情,但可能需要第二双眼睛。如何重写下面的代码以生成所需的$2414结果 问题是:Php 尝试将查询结果乘以总数 问题,php,mysql,Php,Mysql,我生成了一个查询,以确定每个房间的人均总成本和房间内的总人数;每个人的总成本正确返回,房间内的总人数也正确返回;然而,当我尝试对总数进行小乘法时,我只是得到了我想要乘法的数字的显示 例如: 每人价格=1207美元 房间内总人数=2人 查询结果。。。"1207*2" ... 问题: 我敢肯定这是件愚蠢或次要的事情,但可能需要第二双眼睛。如何重写下面的代码以生成所需的$2414结果 问题是: $tourquery=“选择t.roomprice,c.totpax 来自客户c,Tourt 其中c.ro
$tourquery=“选择t.roomprice,c.totpax
来自客户c,Tourt
其中c.roomtype1=t.roomtype1
c.tourstart=t.tourstart
和c.tourbk_id=t.touru id“;
$tourresult=$db->query($tourquery);
而($roomrate=mysqli\u fetch\u assoc($tourresult))
{
echo“人均金额:{$roomrate['roomprice']}
”;
echo“房间总金额:{$roomrate['roomprice']}*{$roomrate['totpax']}
”;
}
为什么不这样做:
while ($roomrate = mysqli_fetch_assoc($tourresult))
{
$totalcost = $roomrate['roomprice'] * $roomrate['totpax'];
echo "Per person amount : {$roomrate['roomprice']}<br />";
echo "Total room amount : {$totalcost}<br />";
}
while($roomrate=mysqli\u fetch\u assoc($tourresult))
{
$totalcost=$roomrate['roomprice']*$roomrate['totpax'];
echo“人均金额:{$roomrate['roomprice']}
”;
echo“房间总金额:{$totalcost}
”;
}
这是因为您正在输出字符串。有多种方法可以解决此问题,包括以下内容:
while ($roomrate = mysqli_fetch_assoc($tourresult))
{
$total_price = $roomrate['roomprice']*$roomrate['totpax'];
echo "Per person amount : {$roomrate['roomprice']}<br />";
echo "Total room amount : {$total_price}<br />";
}
while($roomrate=mysqli\u fetch\u assoc($tourresult))
{
$total_price=$roomrate['roomprice']*$roomrate['totpax'];
echo“人均金额:{$roomrate['roomprice']}
”;
echo“房间总金额:{$Total_price}
”;
}
你也可以很有想象力,让mySQL来计算
SELECT t.roomprice, c.totpax, (t.roomprice * c.totpax) AS total_price
FROM clients c, tourprices t
WHERE c.roomtype1 = t.roomtype
AND c.tourstart = t.tourstart
AND c.tourbk_id = t.tour_id
但不确定你是否受到了性能上的打击。最后,我反反复复地讨论是让DB处理还是让PHP处理。@shane如果这个答案解决了你的问题,你应该接受。一般来说,我反对在引号内加操作。我认为在外面计算要清楚得多。特别是当你有一个编辑器的好处,可以突出显示语法。如果可以的话尽量避免。嗨,代达罗斯,我是。。。Paddy在我问这个问题的41秒钟内就回答了,而这个网站似乎在答案发布后10分钟才允许接受答案。哈哈,41秒。。。那叫“突袭”@谢恩,我看不到速度问题。输出字符串比执行乘法慢得多。小心以牺牲清晰度的方式编码,不要过早地优化。我不了解PHP,但一般情况下,您会将琐碎的优化留给编译器。就专业的编码风格而言,我总是更喜欢最具描述性的代码。如果某个东西确实需要高度优化,那么它应该至少有和代码一样多的注释(有用的注释,说明为什么代码是这样,它是如何工作的,它克服了什么)。
SELECT t.roomprice, c.totpax, (t.roomprice * c.totpax) AS total_price
FROM clients c, tourprices t
WHERE c.roomtype1 = t.roomtype
AND c.tourstart = t.tourstart
AND c.tourbk_id = t.tour_id