PHP - 按月排序,但数据类型是varchar?

时间:2016-07-07 02:57:47

标签: php mysql

您好我想在一个月内获取所有数据顺序,但我的问题是我的数据库月份的数据类型是varchar有人可以给我一些想法吗?

这是我的sql的结构 enter image description here

这是对事件的查询输出

enter image description here

这是我的活动代码

<div class="col-xs-6 col-md-3">
           <div class="title2">
                          <h2><i class="fa fa-calendar"></i> Upcoming Events</h2>
          </div>
       <div class="fix sidebar floatright">
            <div class="fix single_sidebar">
                <div class="events">

                    <?php
                    include_once('connection.php');
                    $sql ="SELECT * FROM events ORDER BY month";
                    $result = mysqli_query($con, $sql);

                     while($row = mysqli_fetch_array($result)){

                                $month = $row['month'];
                                $day = $row['day'];
                                $year = $row['year'];
                                $etitle = $row['event_title'];
                                $stime = $row['start_time'];
                                $etime = $row['end_time'];
                                $evenue = $row['event_venue'];
                         ?>
                         <div class="fix single_events">
                                    <div class="date">
                                         <span class="month"><?php echo $month; ?></span>
                                          <h1 class="day"><?php echo $day; ?></h1>
                                     </div>
                                    <h2><?php echo $etitle; ?></h2>
                                    <p><?php echo $stime; ?> - <?php echo $etime; ?></p>
                                    <p><?php echo $evenue; ?></p>
                                </div>
                                <hr>
                                   <?php
                         }
                    ?>


                </div>
            </div>
       </div>
       </div>

1 个答案:

答案 0 :(得分:2)

问题是month是一个字符串,而不是数值。

在不知道价值的情况下,很难提出具体的解决方案。但这里有一个想法:

order by field(month, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')