查询首先显示“标准”主题,然后显示其余结果

时间:2014-04-13 18:36:03

标签: php mysql

我有以下查询来显示已安装主题的列表。但是用户可以将一个主题作为标准,我想知道是否有办法将标准主题固定在顶部?

示例:

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>';
     }

1 个答案:

答案 0 :(得分:2)

改变您的查询:

SELECT
    * 
FROM 
    installed_designs 
WHERE 
    u_id='$user[id]' 
ORDER BY 
    standard DESC,
    tmp_id DESC

我注意到你的表中有一个标准的标志,所以使用两个排序规则:首先是标准降序(标准先行,然后是非标准),然后是你的tmp_id(如果标准值相同,则此规则将应用)。

相关问题