Php 在显示其他行之前,先在foreach循环中显示具有特定NOTNULL列的db行
我有一个列表表,每个列表都有一个名为“top”的列。基本上,如果top不为null,我希望首先显示该列表,然后显示其他列表 现在,我的代码是这样的:Php 在显示其他行之前,先在foreach循环中显示具有特定NOTNULL列的db行,php,mysql,database,loops,foreach,Php,Mysql,Database,Loops,Foreach,我有一个列表表,每个列表都有一个名为“top”的列。基本上,如果top不为null,我希望首先显示该列表,然后显示其他列表 现在,我的代码是这样的: foreach ($results as $result): echo $result->name; endforeach; 这将显示所有内容,但我希望“top”不为null的行首先显示。最好的方法是什么?你不能对提供$results的查询应用排序依据吗?你不能对提供$results的查询应用排序依据吗?我同意Aaron的观点。。。
foreach ($results as $result):
echo $result->name;
endforeach;
这将显示所有内容,但我希望“top”不为null的行首先显示。最好的方法是什么?你不能对提供
$results
的查询应用排序依据吗?你不能对提供$results
的查询应用排序依据吗?我同意Aaron的观点。。。最好的做法是对它们进行排序,以便它们在查询中处于第一位
如果出于某种原因你不能做到这一点,你可以做一些其他事情:
在PHP中对对象或数组排序。。。可能必须使用自定义函数。。如果是这种情况,请参见:
首先抓取只有NULL的行,打印它们,然后抓取不为NULL的行
可以在数组中循环两次。首先只打印空值,然后再次打印其他值
我同意亚伦的观点。。。最好的做法是对它们进行排序,以便它们在查询中处于第一位
如果出于某种原因你不能做到这一点,你可以做一些其他事情:
在PHP中对对象或数组排序。。。可能必须使用自定义函数。。如果是这种情况,请参见:
首先抓取只有NULL的行,打印它们,然后抓取不为NULL的行
可以在数组中循环两次。首先只打印空值,然后再次打印其他值
试一试
foreach($result as$row){
然后按顺序指定所需的每个元素
echo$row['top']
echo$row[“您的下一个数据行”]…
让他们的空间完全符合你的要求
如果需要格式化,请先尝试使用
ORDER BY ISNULL(`top_ad`), the_rest_of_your_order_clause
您还可以添加if
语句
$data=$row['top']
如果($top==1){则回显此值}否则{回显空值}
尝试
foreach($result as$row){
然后按顺序指定所需的每个元素
echo$row['top']
echo$row[“您的下一个数据行”]…
让他们的空间完全符合你的要求
如果需要格式化,请先尝试使用
ORDER BY ISNULL(`top_ad`), the_rest_of_your_order_clause
您还可以添加if
语句
$data=$row['top']
如果($top==1){则回显此值}否则{回显空值}
根据您在@Aaron Bertrand的回答下面的评论,您需要在sql中使用order子句,如:
根据@Aaron Bertrand下面的回答,您需要在sql语句中使用order子句,如:
你的$results
是一个查询结果吗?如果是,你能请它吗?你的$results
是一个查询结果吗?如果是,你能请它吗?@Aaron Bertrand SQL Server?只有一个mysql标记,我提到的注释不见了。它提到SQL Server了吗?哦,对不起。我不确定我在第一页中是如何回答这个问题的蕾丝。@Aaron Bertrand SQL Server?只有一个mysql标记,我提到的注释不见了。它提到SQL Server了吗?哦,对不起。我不知道我一开始是怎么回答这个问题的。