我有以下查询来显示已安装主题的列表。但是用户可以将一个主题作为标准,我想知道是否有办法将标准主题固定在顶部?
示例:
Design 1
Design 2 (Standard)
设计2被标记为标准,应该在顶部而不是其他任何地方都可见。
Design 2 (Standard)
Design 1
Design 3
Design 4
SQL / PHP
$find_themes = mysqli_query($con, "SELECT * FROM installed_designs WHERE u_id='$user[id]' order by tmp_id desc");
while($themes = mysqli_fetch_array($find_themes))
{
echo '<tr>
<td>'.$themes["name"].'</td>
<td>'; if($themes["standard"]=='1') { echo '<b>Standard</b>'; } echo '</td>
<td>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default btn-sm btn-grey own-toggle" data-toggle="dropdown">
Velg handling <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="/editor/set.theme/'.$themes["tmp_id"].'">Sett som standard</a></li>
<li><a href="/editor/edit.source/'.$themes["tmp_id"].'">Endre HTML/CSS</a></li>
<li><a href="#">Historikk</a></li>
<li class="divider"></li>
<li><a href="#">Slett og fjern</a></li>
</ul>
</div>
</td>
</tr>';
}
答案 0 :(得分:2)
改变您的查询:
SELECT
*
FROM
installed_designs
WHERE
u_id='$user[id]'
ORDER BY
standard DESC,
tmp_id DESC
我注意到你的表中有一个标准的标志,所以使用两个排序规则:首先是标准降序(标准先行,然后是非标准),然后是你的tmp_id(如果标准值相同,则此规则将应用)。