Результаты таблицы MySQL PHP упорядочены по дате - PullRequest
0 голосов
/ 04 июля 2019

Я целый день обдумывал и искал эту проблему.У меня есть запрос:

<tr>
        <th>
            <a href="?orderBy=name">Asset name</a>
        </th>
        <th>
            <a href="?orderBy=classification">Classification</a>
        </th>   
        <th>
            <a href="?orderBy=tag">Tag</a>
        </th>
        <th>
            <a href="?orderBy=department">Department</a>
        </th>   
        <th>
            <a href="?orderBy=nextreview">Next review date</a>
        </th>   
        <th>
            <a href="?orderBy=responsible">Responsible</a>
        </th>   
        <th>Update</th>
        </tr>';


    $sql = "SELECT * 
    FROM `assets`
    ORDER BY id";

    if (isset($_GET['orderBy'])) {
        $orderby = $_GET['orderBy'];
     if ($orderby == 'name')
        {
            $sql = "SELECT * FROM `assets`ORDER BY Asset_name";
        }
        elseif ($orderby == 'classification')
        {
            $sql = "SELECT * FROM `assets`ORDER BY Classification";
        }
        elseif ($orderby == 'tag')
        {
            $sql = "SELECT * FROM `assets`ORDER BY Tag";
        }
        elseif($orderby == 'department')
        {
            $sql = "SELECT * FROM `assets`ORDER BY Department";
        }
        elseif($orderby == 'Next review date')
        {
            $sql = "SELECT * FROM `assets` ORDER BY Review_date asc";
        }
        elseif($orderby == 'responsible')
        {
            $sql = "SELECT * FROM `assets`ORDER BY Responsible";
        }
}

У меня есть таблица PHP, которая отображает результат, запрос выше работает в phpmyadmin, я пробовал несколько раз.Однако в PHP он не работает: он сортирует результат, по-видимому, случайным образом, если я нажимаю на заголовок.Формат даты YYYY-MM-DD и в phpmyadmin это дата.Я попытался создать пользовательские поля или просто изменить код SQL на DATE (Review_date), но все это работает в phpmyadmin, но не в коде PHP.

Можете ли вы помочь мне?Спасибо!

if (!($result=mysqli_query($conn, $sql)))
    { die("Could not show the required data" . mysqli_error($conn));}
    elseif (mysqli_num_rows($result) > 0) {

        while($result2=mysqli_fetch_array($result))
        {echo '<tr>
        <td>'.$result2["Asset_name"].'</td>
        <td>'.$result2["Classification"].'</td>
        <td>'.$result2["Tag"].'</td>
        <td>'.$result2["Department"].'</td>
        <td>'.$result2["Review_date"].'</td>
        <td>'.$result2["Responsible"].'</td>
       </tr>';
}

1 Ответ

0 голосов
/ 04 июля 2019

Чтобы ссылаться на ключи массива как на имя столбца MySql, вам нужно использовать либо mysql_array_assoc ($ result), либо mysqli_fetch_array ($ result, MYSQLI_ASSOC).

- отредактировано - извините,Я думаю, я не понял вашего вопроса.В этом случае я не понимаю связь между вашим вопросом и вашим кодом.Что именно это «Обзор»?На каком уровне это делает сортировку?бэкенд?внешний интерфейс?Кто сортировщик?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...