Php 查询返回3行的相同数据
我得到的第一、第二和第三个值相同。然后下一行给出了第一行第二列的结果Php 查询返回3行的相同数据,php,mysql,json,Php,Mysql,Json,我得到的第一、第二和第三个值相同。然后下一行给出了第一行第二列的结果 <?php require "db.php"; $sql = "select n_name, shortcut, IF(rank = 1>2, 2, shortcut) AS 1st, IF(rank = 1<2, shortcut, shortcut) AS 2nd, IF(rank = 3=3, 1, shortcut) as 3rd from team inner join nonspor
<?php
require "db.php";
$sql = "select n_name, shortcut, IF(rank = 1>2, 2, shortcut) AS 1st, IF(rank = 1<2, shortcut, shortcut) AS 2nd,
IF(rank = 3=3, 1, shortcut) as 3rd from team inner join nonsport on team.n_id = nonsport.n_id";
$con = mysqli_connect($server_name,$mysql_user,$mysql_pass,$db_name);
$result = mysqli_query($con,$sql);
$response = array();
while($row=mysqli_fetch_array($result))
{
array_push($response, array("n_name"=>$row[0],"1st"=>$row[1],
"2nd"=>$row[2], "3rd"=>$row[3]));
}
echo json_encode (array("nresults"=>$response));
mysqli_close($con);
?>
我的预期产出是
例如。快捷方式有a、b、c,它们的等级为a=1b=2c=3
然后第一个=a,第二个=b,第三个=c
我得到的是
第一个=a,第二个=a,第三个=a
然后下一行显示
第一个=b,第二个=b,第三个=b
IF(rank = 1 > 2, 2, shortcut)
其解决方法如下:
- 如果
等于1,则rank
为1,否则为0rank=1
- 0或1是否可以大于2?没有
- 因此,
始终解析为false,并且rank=1>2
的输出将是一个参数,即快捷方式李>IF
在这方面,
- 如果秩为3,则
为1,否则为0李>rank=3
(输出0或1)是否可以等于3?没有rank=3
- 因此,
总是返回false,因此输出总是第三个参数,即快捷方式rank=3=3
关于您的预期输出,请编辑您的问题,添加示例数据和基于此的预期输出,以及完整的逻辑解释。
rank=1我刚刚尝试了sirOh,这就是if-else查询在php中的工作方式?我不知道。我只是把随机的东西放在那里,希望得到答案。Thanks@orange嗯,那不是PHP.Wtf哈哈,真的很失落。再次感谢
IF(rank = 1 < 2, shortcut, shortcut)
IF(rank = 3 = 3, 1, shortcut)