【问题标题】:Add values from db to array, sort and display将 db 中的值添加到数组,排序和显示
【发布时间】:2016-08-30 15:33:33
【问题描述】:

我从 mysql 数据库中获取了一些值,但 db 中的值不按顺序排列。我想将星期几排序为 SUN、MON、TUE 等,并显示 db 表中的相应值。我目前正在显示数据库中的值而不进行排序。我将这些值添加到一个数组中。如何对 html 表中的值进行排序和显示?这是我的代码

<?php 
$q3 = mysqli_query($link,"SELECT * FROM stores_op_hours WHERE Store_Id='$stid' ");
?>
<table class="table ophours">
    <thead class="thead-inverse">

        <tr><th>Day</th><th>Open Time</th><th>Close Time</th></tr>
    </thead>
<?php 
$myarray = array();
while($rw = mysqli_fetch_array($q3)){

    $day = $rw['Day_Name'];
    $op = $rw['Open_Time'];
    $cl = $rw['Close_Time'];
    //$day = strtoupper($day);

    $myarray[] = array("day" => $day, "open" => $op, "close" => $cl);
?>  
    <tbody>
        <tr><td><?php echo $day; ?></td><td><?php echo $op; ?></td><td><?php echo $cl; ?></td></tr>
    </tbody>
<?php
}
?>
</table>

【问题讨论】:

    标签: php mysql arrays sorting


    【解决方案1】:

    您可以做的是ORDER BY FIELD(id,3,2,1,4) 解决方案。然后在查询中指定 Day_Name 字段的排序顺序,如下所示:

    $q = sprintf("SELECT * FROM stores_op_hours WHERE Store_Id=%d 
    order by field(Day_Name,'SUN','MON','TUE','WED','THU','FRI','SAT')",(int) $stid);
    

    【讨论】:

    • 我现在没有从查询中得到任何结果
    • @Erik 字符串中的错字应为“... field(Day_Name,...”而不是 Day_name
    • 另外,它不应该循环回到'SUN',所以整个事情应该看起来像“按字段排序(Day_Name,'SUN','MON','TUE','WED', '周四'、'周五'、'周六')"
    • @Webomatik,我在修改了他的代码后得到了答案,你能批准对他的答案的编辑吗?
    【解决方案2】:

    所以最后的编辑(感谢@Erik Dohmen)应该是这样的:

    $q = sprintf("SELECT * FROM stores_op_hours WHERE Store_Id=%d 
    order by field(Day_Name,'SUN','MON','TUE','WED','THU','FRI','SAT')",
    (int) $stid);
    $q3 = mysqli_query($link,$q);
    

    【讨论】:

      猜你喜欢
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      相关资源
      最近更新 更多