Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用条件获取sql php或使用条件合并获取?_Php_Sql - Fatal编程技术网

如何使用条件获取sql php或使用条件合并获取?

如何使用条件获取sql php或使用条件合并获取?,php,sql,Php,Sql,我有一个名为links的表,其中的列名为linklink2link3和score 我希望始终获取链接,但仅当得分大于等于100时,才能获取链接2。仅当得分大于等于200时,才能获取link3。然后将所有这些结果放在一行中,以便一行读取。 查看我的脚本(根本没有加载) $sql=“从useron=1的链接中选择链接、链接2、链接3、分数”; $liste=数组('link'); $list2=数组('link2'); $list3=数组('link3'); 如果($list2['score']>=

我有一个名为
links
的表,其中的列名为
link
link2
link3
score
我希望始终获取
链接
,但仅当
得分
大于等于100时,才能获取
链接2
。仅当
得分
大于等于200时,才能获取
link3
。然后将所有这些结果放在一行中,以便一行读取。 查看我的脚本(根本没有加载)

$sql=“从useron=1的链接中选择链接、链接2、链接3、分数”;
$liste=数组('link');
$list2=数组('link2');
$list3=数组('link3');
如果($list2['score']>=100&&<200){
$liste[]=“link2”;
如果($list3['score']>=200)
$liste[]=“link3”;
if($result=mysqli_查询($link,$sql)){
如果(mysqli_num_行($result)>0){
while($row=mysqli\u fetch\u数组($result)){
echo$row['link']。“\n”;
}
//自由结果集
mysqli_免费_结果($result);
}否则{
echo“未找到与您的查询匹配的记录。”;
}
}否则{
echo“错误:无法执行$sql。”.mysqli_错误($link);
}

您可以执行以下操作:

SELECT link, 
       CASE
           WHEN score >= 100 THEN link2
           ELSE ''
       END as link2, 
       CASE
           WHEN score >= 200 THEN link3
           ELSE ''
       END as link3, 
       score
FROM links
WHERE useron = 1

然后获取所有行并显示所有非空链接。

这就是我所做的Lajos Arpad,我的意思是我看不到结果,因为我的页面根本没有加载…@Specimenx33你没有做这个确切的事情,你在PHP级别上做了这个逻辑,但更重要的是,你在某个地方出错了,所以你需要向我们提供关于您得到的实际错误。很抱歉@Lajos Arpad我是php新手,这是我的项目要完成的最后一步。错误只是错误500(此页面未加载)当我转到url时。请问你的帮助帖子有什么错误吗?我正在努力让它工作,但更重要的是我想learn@Specimenx33500表示内部服务器错误。您需要检查服务器日志以了解确切的错误是什么。当我只回显一个基本sql请求的链接时,我的页面正在工作。错误更像关于我的语法,我想,但我不知道在哪里。。。
SELECT link, 
       CASE
           WHEN score >= 100 THEN link2
           ELSE ''
       END as link2, 
       CASE
           WHEN score >= 200 THEN link3
           ELSE ''
       END as link3, 
       score
FROM links
WHERE useron = 1