Doesn't work sortint in 0 index.

Doesn't work sortint in 0 index.

Maxim_1Maxim_1 Posts: 15Questions: 5Answers: 1

Please help with sorting. All colums work, bit only first doesn't
"columns": [
{
"data": "id",
"title": "

<i class='fas fa-filter filter-icon' data-column-index='0' style='position: absolute; bottom: 430px; left: 24px;' onclick='event.stopPropagation();'></i>",
"render": function (data) {
return '

' + data + '

<img src="delete.png" alt="Удалить" class="deleteRow" data-id="' + data + '">';
},
},

<?php $start = isset($_POST['start']) ? $_POST['start'] : 0; $length = isset($_POST['length']) ? $_POST['length'] : 20; $draw = isset($_POST['draw']) ? $_POST['draw'] : 1; $order = isset($_POST['order'][0]) ? $_POST['order'][0] : null; $search = isset($_POST['search']['value']) ? $_POST['search']['value'] : ''; $conn = new mysqli("localhost", "root", "HelloWorld2023!", "logbook"); if ($conn->connect_error) { die("Ошибка: " . $conn->connect_error); } $columns = array( 'id', 'date', 'partner', 'category', 'reason', 'fromWho', 'description', 'dateToSend', 'toWho', 'howSend', 'position' ); $sql = "SELECT * FROM logbook WHERE 1 = 1"; if (!empty($search)) { $sql .= " AND ("; for ($i = 0; $i < count($columns); $i++) { if ($i > 0) { $sql .= " OR "; } $sql .= $columns[$i] . " LIKE '%" . $search . "%'"; } $sql .= ")"; } if (!empty($order) && !empty($order['column']) && array_key_exists($order['column'], $columns)) { $columnIndex = $order['column']; $orderDir = $order['dir']; $sql .= " ORDER BY " . $columns[$columnIndex] . " " . $orderDir; } if ($length != -1) { $sql .= " LIMIT $start, $length"; } $result = $conn->query($sql); if ($result) { $data = array(); while ($row = $result->fetch_assoc()) { $data[] = $row; } if ($length == -1) { $totalRecords = count($data); $filteredRecords = $totalRecords; } else { $totalRecords = $conn->query("SELECT COUNT(id) as total FROM logbook")->fetch_assoc()['total']; $filteredRecords = mysqli_num_rows($result); } $response = array( "draw" => intval($draw), "recordsTotal" => intval($totalRecords), "recordsFiltered" => intval($totalRecords), "data" => $data, ); echo json_encode($response); } else { echo "Ошибка при выполнении запроса: " . $conn->error; } $conn->close(); ?>

This question has accepted answers - jump to:

Answers

  • Maxim_1Maxim_1 Posts: 15Questions: 5Answers: 1
    Answer ✓

    I fixed
    $orderColumn = isset($_POST['order'][0]['column']) ? $_POST['order'][0]['column'] : 0;
    $orderDir = isset($_POST['order'][0]['dir']) ? $_POST['order'][0]['dir'] : 'asc';

    if (array_key_exists($orderColumn, $columns)) {
    $sql .= " ORDER BY " . $columns[$orderColumn] . " " . $orderDir;
    }

  • allanallan Posts: 60,903Questions: 1Answers: 9,927 Site admin
    Answer ✓

    Thanks for posting back. Good to hear you've got it sorted :)

    Allan

Sign In or Register to comment.