php-mysql表时出现问题

mtb9vblg  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(301)

我是一个学习型程序员,我有一个问题。
我的网站上有一个html表,我用mysql中的数据填充它。
现在我想对我的表进行datewise排序,所以我希望最接近的日期位于表的顶部。
我该怎么做(我的日期格式是[dd.mm]no years)
例如,对于order by方法,01.11是第一个条目,而不是23.10之后的条目。
我的代码:
我希望你能帮我,因为我不明白。

<!DOCTYPE html>
<html>
<head>
    <title>lll</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css">

    <script type="text/javascript">

    function eintragen(){
        window.location="http://lll.bplaced.net/eintragen.php"
    }
    </script>
</head>
<body>

    <p class="headertext">Online lll</p>
    <hr><br>

    <?php

        $servername = "localhost";
        $username = "kllllf";
        $password = "lll";
        $dbname = "kll";
        $conn = mysqli_connect($servername, $username, $password, $dbname);
        if (mysqli_connect_errno()) {
            die("Connection failed: " . mysqli_connect_error());
        }

        $rows = 0;
        $sql = "
        SELECT
            *
        FROM
            lll
       (ORDER BY
            Ende)
        ";
        $query = mysqli_query($conn, $sql);
        $num = mysqli_num_rows($query);

        echo "<table name=\"table\"border=\"1\">";
                echo "<tr>";
        echo "<td align=\"center\" valign=\"middle\" width=\"150px\" height=\"50px\">Bis Wann</td>";
        echo "<td align=\"center\" valign=\"middle\" width=\"150px\">Fach</td>";
        echo "<td align=\"center\" valign=\"middle\" width=\"350px\">lll</td>";
        echo "</tr>";
                echo "<tr>";
        echo "<td align=\"center\" valign=\"middle\" height=\"50px\">× × ×</td>";
        echo "<td align=\"center\" valign=\"middle\">× × ×</td>";
        echo "<td align=\"center\" valign=\"middle\">× × ×</td>";
        echo "</tr>";

        while($row = mysqli_fetch_assoc($query)){

            $fach = $row['Fach'];
            $ha = $row['Hllln'];
            $ende = $row['Ende'];

            if($ende < date("d.m")) {
                       $sqls = "DELETE FROM hlllll WHERE Ende='$ende';";
            if(!mysqli_query($conn, $sqls)){
            echo "<p>Es gab keine älteren Hlllll</p>";
        }

            }

        echo "<tr>";
        echo "<td align=\"center\" valign=\"middle\" height=\"50px\">".$ende."</td>";
        echo "<td align=\"center\" valign=\"middle\">".$fach."</td>";
        echo "<td align=\"center\" valign=\"middle\">".$ha."</td>";
        echo "</tr>";
        }

        echo "</table>";

        echo "<br />";
        echo "<button type=\"button\" onclick=\"eintragen()\">Hlllllln eintragen?</button>";

?>

</body>
vjrehmav

vjrehmav1#

将日期列转换为datetime并使用下面的查询。

$sql = " SELECT * FROM lll
         ORDER BY convert(datetime, Ende , 104) ASC ";

这里,104代表dd.mm格式
方法2:

$sql = "SELECT * FROM lll 
        ORDER BY STR_TO_DATE(Ende ,"%d.%m") ASC";
bwitn5fc

bwitn5fc2#

因为你只有一天和一个月,你可以试试这个。

SELECT * FROM lll ORDER BY STR_TO_DATE(Ende,'%d.%m') DESC

相关问题