Не работают функции в DataTable

у меня есть mysql бд, в которой 1000+ записей, несколько таблиц и тд. Мне нужно ее корректно отобразить, я выбрал для этого DataTable,вроде бы все корректно подключил, но функции сортировки столбцов не работают, поиск не работает, отображение по 10,20,30.... записей не работает, что я сделал неверно?

php файл, где я обращаюсь к базе данных и записываю данные в массив (getData.php)

        <?php
    include $_SERVER['DOCUMENT_ROOT']."/config.php";
    $sql= "select * from in_main where Sheet=1 order by id";
    $result = mysqli_query($conn,$sql);

    $i=0;
    while ($data = mysqli_fetch_array($result)){
                $DocumentName[$i] = $data['DocumentName']; 
                $DocumentNumber[$i] = $data['DocumentNumber'];
                $DocumnetFormat[$i] = $data['DocumnetFormat'];
                $OriginalInventoryNumber[$i] = $data['OriginalInventoryNumber'];
                $OriginalDataSupplay[$i] = $data['OriginalDataSupplay'];
                $DuplicationInventoryNumber[$i] = $data['DuplicationInventoryNumber'];
                $DuplicationDataSupplay[$i] = $data['DuplicationDataSupplay'];

        $sql= "select ForMarks from in_additionaly where DocumentNumber='$DocumentNumber'";
        $result2 = mysqli_query($conn,$sql);
        $data = mysqli_fetch_array($result2);
        $ForMarks[$i] = $data['ForMarks']; 

        $sql= "select DesignationApplicability,CypherApplicability from in_applicability where DocumentNumber='$DocumentNumber' AND Sheet=1 order by DateApplicability";
        $result2 = mysqli_query($conn,$sql);
        $data = mysqli_fetch_array($result2);
        $DesignationApplicability[$i] = $data['DesignationApplicability']; 
        $CypherApplicability[$i] = $data['CypherApplicability'];
        $i++;
    }
    ?>

Файл, где я подключаю DataTable, файл с загруженными данными (getData) и рисую таблицу

    <?php
include 'getData.php';
?>
<html>
<head>
<title>Картотека архива</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="ru">
<link rel="stylesheet" href=../css/All_style.css>
<link rel="stylesheet" type="text/css" href="../../../../DataTables/datatables.css">
<script type="text/javascript" charset="utf8" src="../../../../DataTables/datatables.js"></script>

<script>
$(document).ready( function () {
    $('#table_id').DataTable({
        responsive: true
    });
} );
</script>

</head>
<body>
<div align="center">
    <h1>Картотека архива(таблица)</h1>
    <a href="mysql_table.php"><input type="submit" value="Обновить" /></a>
    <form action="../Service_program.php"><button>Выход</button></form>     
    <br><br>
 <table id="table_id" class="display">
    <thead>
    <tr>
        <td rowspan="2"><b>Наименование</b></td>
        <td rowspan="2"><b>Номер документа</b></td>
        <td rowspan="2"><b>Формат</b></td>
        <td colspan="2"><b>Подлинник</b></td>
        <td colspan="2"><b>Дубликат</b></td>
        <td colspan="2"><b>Применяемость</b></td>
        <td rowspan="2"><b>Для отметок</b></td>
    </tr>
    <tr>
        <td><b>Инвентарный номер</b></td>
        <td><b>Дата поступления</b></td>
        <td><b>Инвентарный номер</b></td>
        <td><b>Дата поступления</b></td>
        <td><b>Обозначение</b></td>
        <td><b>Шифр индекса изделия</b></td>
    </tr>
    </thead>
    <tfoot>
    <tr>
        <td rowspan="2"><b>Наименование</b></td>
        <td rowspan="2"><b>Номер документа</b></td>
        <td rowspan="2"><b>Формат</b></td>
        <td colspan="2"><b>Подлинник</b></td>
        <td colspan="2"><b>Дубликат</b></td>
        <td colspan="2"><b>Применяемость</b></td>
        <td rowspan="2"><b>Для отметок</b></td>
    </tr>
    <tr>
        <td><b>Инвентарный номер</b></td>
        <td><b>Дата поступления</b></td>
        <td><b>Инвентарный номер</b></td>
        <td><b>Дата поступления</b></td>
        <td><b>Обозначение</b></td>
        <td><b>Шифр индекса изделия</b></td>
    </tr>
    </tfoot>
<?php
    $j=0;
    while ($j<$i)
    {
        echo " <tbody><tr>
                <td>$DocumentName[$j]</td>
                <td>$DocumentNumber[$j]</td>
                <td>$DocumnetFormat[$j]</td>
                <td>$OriginalInventoryNumber[$j]</td>
                <td>$OriginalDataSupplay[$j]</td>
                <td>$DuplicationInventoryNumber[$j]</td>
                <td>$DuplicationDataSupplay[$j]</td>
                <td>$DesignationApplicability[$j]</td>
                <td>$CypherApplicability[$j]</td>
                <td>$ForMarks[$j]</td>
        </tr></tbody>"; 
        $j++;
    }
    echo '</table>';




?>



</div>
</body>
</html>

Я пробовал рисовать таблицу с уже готовыми данными, без обращения к базе, тогда все работает корректно. В чем может быть причина?


Ответы (1 шт):

Автор решения: Mykola Kikets

Вполне вероятно что в табличку записано много блоков tbody

Попробуй заменить на

$j=0;
echo "<tbody>";
while ($j<$i)
{
    echo " <tr>
            <td>$DocumentName[$j]</td>
            <td>$DocumentNumber[$j]</td>
            <td>$DocumnetFormat[$j]</td>
            <td>$OriginalInventoryNumber[$j]</td>
            <td>$OriginalDataSupplay[$j]</td>
            <td>$DuplicationInventoryNumber[$j]</td>
            <td>$DuplicationDataSupplay[$j]</td>
            <td>$DesignationApplicability[$j]</td>
            <td>$CypherApplicability[$j]</td>
            <td>$ForMarks[$j]</td>
    </tr>"; 
    $j++;
}
echo '</tbody>
      </table>';
?>
</div>
<script>
$('#table_id').DataTable({
    responsive: true
});
</script>
</body>
</html>
→ Ссылка