Как сделать сортировку таблицы по нажатию заголовка столбца?

Есть таблица заполняемая из MySQL. Сделал сортировку, но работает не так как нужно. По умолчанию при открытии страницы должны быть сортировка по id_ticket по возрастанию. А сейчас при открытии страницы сортировка по убыванию. При нажатии на заголовок дата создания происходит сортировка по возрастанию, а если нажать еще раз, должно отсортироваться по убыванию, но ничего не происходит.
<table class="table table-sm table-responsive-md table-striped table-bordered table-hover text-center">
               <thead>
                    <tr>
                        <th scope="col">#</th>
                        <th scope="col" hidden><a href="./index.php?key=id_ticket&sort=$sort/">ID</a></th>
                        <th scope="col"><a href="./index.php?key=create_date&sort=$sort/">Дата создания</a></th>
                        <th scope="col">Описание</th>
                        <th scope="col">Заявитель</th>
                        <th scope="col" hidden>Кабинет</th>
                        <th scope="col" hidden>Телефон</th>
                        <th scope="col">Этап</th>
                        <th scope="col">Исполнитель</th>
                        <th scope="col">Приоритет</th>
                        <th scope="col">Срок завершения</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                        
                        if (isset($_GET['key'])) {
                            $key = $_GET['key'];
                            $sort = $_GET['sort'];
                        } else {
                            $key = 'id_ticket';
                            $sort = 'asc';
                        }
                        
                        if($sort=='asc'){
                            $sort='desc';
                        } else {
                            $sort='asc';
                        }
                        
                        $sql_tbl_tickets = "SELECT * FROM tickets, priority, stages WHERE tickets.priority = priority.id AND tickets.stage = stages.id AND stages.id = '5' ORDER BY $key $sort";
                        $result_tbl_tickets = mysqli_query($connection, $sql_tbl_tickets);
                    
                        $row_index = 1;
                        
                        while ($row_tbl_tickets = mysqli_fetch_array($result_tbl_tickets)){
                            echo '<tr class="tckttbl" id="' . $row_index . '">
                                    <th scope="row">' . $row_index . '</th>
                                    <td hidden>' . $row_tbl_tickets['id_ticket'] . '</td>
                                    <td>' . $row_tbl_tickets['create_date'] . '</td>
                                    <td>' . $row_tbl_tickets['description'] . '</td>
                                    <td>' . $row_tbl_tickets['author'] . '</td>
                                    <td hidden>' . $row_tbl_tickets['cabinet'] . '</td>
                                    <td hidden>' . $row_tbl_tickets['phone'] . '</td>
                                    <td>' . $row_tbl_tickets['stage'] . '</td>
                                    <td>' . $row_tbl_tickets['executor'] . '</td>
                                    <td>' . $row_tbl_tickets['priority'] . '</td>
                                    <td>' . $row_tbl_tickets['completion_date'] . '</td>
                                  </tr>';
                                    $row_index++;
                        }
                    
                    ?>
                </tbody>
            </table>
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 2
@sl0
<th scope="col" hidden><a href="./index.php?key=id_ticket&sort=<?= isset($_GET['sort'] && $_GET['sort'] == 'asc' ? 'desc' : 'asc') ?>">ID</a></th>
<th scope="col"><a href="./index.php?key=create_date&sort=<?= isset($_GET['sort'] && $_GET['sort'] == 'asc' ? 'desc' : 'asc') ?>/">Дата создания</a></th>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SymbioWay Москва
от 120 000 до 180 000 ₽
РосТендер Москва
от 130 000 до 150 000 ₽
АКМЭ сервис Санкт-Петербург
от 120 000 до 150 000 ₽