引导表显示条目不显示确切的单元数

时间:2019-03-19 07:28:50

标签: javascript php html

利用我的少量PHP知识,我努力工作了4天才能使DataTable显示客户选择的确切条目。下面是我从Mysql数据库获取数据的代码

<?php 
include("check.php"); 
include("config.php");

// Create connection
//$conn = new mysqli($servername, $username, $password, $dbname);

$sql = 'SELECT * from transaction';
if (mysqli_query($db, $sql)) {
    echo "";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($db);
}

$count=0;
$result = mysqli_query($db, $sql);

?>

这是我用于显示Table的html,它必须具有分页功能,客户可以选择要查看的单元格数量(例如:10、25、50、100)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta name="description" content="">
        <meta name="author" content="">
        <title>მთავარი გვერდი</title>

        <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet"><!-- Bootstrap core CSS-->

        <link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <!-- Custom fonts for this template-->

        <link href="https://cdn.datatables.net/1.10.18/css/dataTables.bootstrap4.min.css" rel="stylesheet"><!-- Page level plugin CSS-->

        <link href="css/sb-admin.css" rel="stylesheet">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://cdn.datatables.net/1.10.18/js/jquery.dataTables.min.js"></script>
        <script src="https://cdn.datatables.net/1.10.18/js/dataTables.bootstrap4.min.js"></script>
    </head>

    <body class="fixed-nav sticky-footer bg-dark" id="page-top">
        <!-- Navigation-->
        <?php include("template/navigbar.php"); ?>

        <!-- Breadcrumbs-->
        <?php include("template/breadc.php"); ?>
        <!-- Icon Cards-->

        <!-- Example DataTables Card-->

        <div class="card mb-3">
            <div class="card-header">
                <i class="fa fa-table"></i> Data Table Example</div>
            <div class="card-body">
                <div class="table-responsive">
                <table class="table table-striped table-bordered" id="myTable" width="100%" cellspacing="0">
                    <thead>
                        <tr>
                        <th>ID</th>
                        <th>თქვენი ID</th>
                        <th>თარიღი</th>
                        <th>ობიექტი</th>
                        <th>ტერმინალი</th> 
                        <th>თანხა</th> 
                        <th>ჯამი</th> 
                        </tr>
                    </thead>
                    <?php
                    while ($row = mysqli_fetch_assoc($result))
                    {
                        $count =$count + $row['amount']; 
                        echo '
                            <tbody>
                                <tr>
                                <td>'.$row["trID"].'</td>
                                <td>'.$row['userID'].'</td>
                                <td>'.$row['trDate'].'</td>
                                <td>'.$row['obName'].'</td>
                                <td>'.$row['terName'].'</td>
                                <td>'.$row['amount'].'</td>
                                <td>'.$count.'</td>
                                </tr>
                            </tbody>
                            ';
                    }
                    ?>   
                </table>
        </div>
    </body>
</html>

<script>
    $(document).ready( function () {
        $('#myTable').DataTable();
    });
</script>

但是结果始终是完整的表,显示1项中的1项到1项,但表中显示的单元格多于25个。See Screenshot attached

请让我知道我在做什么错?

4 个答案:

答案 0 :(得分:0)

tbody标记放在while语句之外。

答案 1 :(得分:0)

我将其发布为答案,因为它可以解决问题。

<tbody>必须在循环之外

答案 2 :(得分:0)

您必须在开始循环之前添加tbody。

在您的代码中,您正在为每一行而不是一行创建一个新的躯干。

别忘了在php close标签之后关闭tbody

答案 3 :(得分:0)

我希望这段代码对您有帮助

'aLengthMenu': [[50, 100, 150, -1], [50, 100, 150, "All"]],
  'iDisplayLength': '50'