Php 如何让前五名的计算结果只出现在屏幕上
我有一个狗展网站,并试图显示前五名犬舍附加物与最多的分数超过一年 如代码中所示,我已经拆分了这一点,并在两个表上使用了内部联接。一只是结果,另一只是狗 我在显示词缀名称及其旁边获得的点数时遇到问题。根据大多数分数也无法获得前五名 警告:在第59行的xxx中遇到非数字值 注意:未定义变量:第68行xxx中的总计 下面是所有显示的内容,我认为它添加了if语句Php 如何让前五名的计算结果只出现在屏幕上,php,mysql,Php,Mysql,我有一个狗展网站,并试图显示前五名犬舍附加物与最多的分数超过一年 如代码中所示,我已经拆分了这一点,并在两个表上使用了内部联接。一只是结果,另一只是狗 我在显示词缀名称及其旁边获得的点数时遇到问题。根据大多数分数也无法获得前五名 警告:在第59行的xxx中遇到非数字值 注意:未定义变量:第68行xxx中的总计 下面是所有显示的内容,我认为它添加了if语句 3 6 对不起,我不太擅长,需要帮助 <?php $query = "SELECT result.placement,
3
6
对不起,我不太擅长,需要帮助
<?php
$query = "SELECT result.placement, result.award, result.class_name, dogs.affix
FROM result
INNER JOIN dogs
ON result.resultID = dogs.dog_id
ORDER BY dogs.affix LIMIT 5";
$result = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($result)){
$affix = $row['affix'];
$placement = $row['placement'];
$award = $row['award'];
if($award === 'BCC'){
$points = $affix + 5;
}
if($award === 'DCC'){
$points = $affix + 5;
}
if($award === 'RBCC'){
$points = $affix + 4;
}
if($award === 'RDCC'){
$points = $affix + 4;
}
if($placement === '1st'){
$points = $affix + 3;
}
if($placement === '2nd'){
$points = $affix + 2;
}
if($placement === '3rd'){
$points = $affix + 1;
}
$total += $points;
echo "<li> {$affix} {$total}</li>";
}
?>
三个问题
按狗排序。粘贴限制5返回底部5而不是顶部。它应该由狗来订购。贴上DESC LIMIT 5以获得顶部。
词缀返回null或emparty字符串,这就是为什么会出现第一个错误。在数据库中将此字段定义为int not null默认值0。
$total未初始化。在循环之前将其指定为0
需要查看更多的代码页面上的所有代码显然不是,因为这里只有47行,但这不是重点。抱歉,所有php代码,其余都是HTML。我看到了一个加法赋值运算符,但我没有看到$total的初始Declating。感觉我们没有看到整个故事。我可能会在SELECT子句中加入一个CASE语句。谢谢,这真的很有帮助