我在做一个健身追踪网站。用户可以添加减肥目标,并使用卡路里计算器来计算他们在某些练习中失去了多少卡路里。我已经实现了一个显示用户卡路里损失进度的进度条。它还显示两个值,一个是用户失去的卡路里总数,另一个是用户目标丢失的目标卡路里数值。如何防止由于用户输入而导致值相乘?
当我添加多个目标时,目标卡路里数量值是正确的,但显示用户丢失多少卡路里的值似乎乘以该用户输入了多少个目标。
我在如何防止这种情况发生,以及显示用户失去多少卡路里的价值上挣扎,无论设置了多少目标。
例如,用户总共消耗了1310卡路里。当用户添加第二个减重目标时,该卡路里损失值翻倍至2620,而用户不输入任何减肥活动。
这是我用过的查询......
$sql = "SELECT
SUM(calories) as calories
, CASE g.weightunit
WHEN 'lbs' THEN 3500
ELSE 7700
END * weightlost as target_calories
FROM (SELECT * FROM goal ORDER BY weightlost DESC) g
INNER JOIN tracklog t USING (userid)
WHERE userid = ? ";
$stmt = $con->prepare($sql);
$stmt->bind_param('i', $_SESSION['userid']);
$stmt->execute();
$stmt->bind_result($calories, $target);
$res = $stmt->fetch();
编辑你的问题,并提供样本数据和所需的结果。 –
这对于您正在使用的查询类型是正常的。为什么你在桌子上有一个重量单位,你用它做什么?如果它改变了不同的目标呢? –
@SamiKuhmonen当用户目标显示在他们的账户仪表盘上时,需要权重单位,以便他们可以跟踪他们设置的内容。他们只能选择磅或千克。 – monica44