проблема с сортировкой html php mysql таблицы - PullRequest
0 голосов
/ 24 октября 2018

Я учусь на программиста, и у меня есть вопрос.

У меня есть Html-таблица на моем веб-сайте, и я заполняю ее своими данными из MySql.

Теперь я хочучтобы отсортировать мою таблицу по дате, поэтому я хочу, чтобы ближайшая дата находилась вверху таблицы.

Как мне это сделать (мой формат даты [дд.мм] нет лет)

сметод 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>

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Поскольку у вас есть только день и месяц, вы можете попробовать это.

SELECT * FROM lll ORDER BY STR_TO_DATE(Ende,'%d.%m') DESC
0 голосов
/ 24 октября 2018

Преобразуйте ваш столбец даты в дату и время и используйте следующий запрос.

$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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...