javascript - 使用带有动态 header 的数据表在我的网站上显示 mysql 结果

标签 javascript php html mysql datatables

所以我有一个正在开发的工作网站。它允许销售人员进入并输入日期范围和他们的姓名缩写,它会查询我的数据库并将表格及其数据返回给他们。我提取的列数量取决于他们选择的日期范围。时间段越长,列数就越多(我将其逐周分开,所以更多天=更多周)

我遇到的问题是,当我动态拉动列标题时,使用 for 循环从 mysql 查询中获取标题,以便它是动态的,我不必为他们可以选择的每周的每个案例进行编码,标题替换了表格中的第一项,因此我丢失了一行。

我想知道是否有人有动态抓取 mysql 查询集的列标题并将其与数据表一起使用的经验?

我不想粘贴大量代码并聚集这篇文章,所以请告诉我您想看到什么,我会提供它。

提前感谢您提供的所有帮助,我希望我对我的问题没有太困惑。

以下是代码示例:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection Failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM sampleTable";

$result = $conn->query($sql);
$conn->close();
?>

<div class="card mb-3">
    <div class="card-header">
        <i class="fa fa-table"></i></div>
    <div class="card-body">
        <div class="table-responsive">
            <table class="table table-bordered" id="adminTable" width="100%" cellspacing="0">
                <thead>
                    <?php
                    if ($result->num_rows > 0) {
                        echo "<tr>";
                        foreach(array_keys($result->fetch_assoc()) as $field){
                            echo "<th>" . $field . "</th>";
                        }
                        echo "</tr>";
                    } else {
                        echo "<h1 align=\"center\">No Results Found</h1>";
                    }
                    ?>
                </thead>
                <tbody>
                    <?php
                    if ($result->num_rows > 0) {
                        while($data = $result->fetch_assoc()) {
                            echo "<tr>";
                            foreach ($data as $field => $value){
                                echo "<td>" . $value . "</td>";
                            }
                            echo "</tr>";
                        }
                    }
                    ?>
                </tbody>
            </table>
        </div>
    </div>
    <div class="card-footer small text-muted">Updated yesterday at 11:59 PM</div>
</div>

<!--Not included in current file - included in base php-->
<script type="text/javascript">
    $('#dataTable').DataTable( {
        "scrollX": true,
        "scrollY": '55vh',
        "scrollCollapse": true,
        "paging": false,
        dom: 'iftB',
        buttons: [
        'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    } );
</script>

最佳答案

只需将第一次获取的结果放入变量中,然后在获取其他行之前回显它:

 <table class="table table-bordered" id="adminTable" width="100%" cellspacing="0">
            <thead>
                <?php
                if ($result->num_rows > 0) {
                    echo "<tr>";
                    $firstRow = $result->fetch_assoc();
                    foreach(array_keys( $firstRow ) as $field){
                        echo "<th>" . $field . "</th>";
                    }
                    echo "</tr>";
                } else {
                    echo "<h1 align=\"center\">No Results Found</h1>";
                }
                ?>
            </thead>
            <tbody>
                <?php
                if ($result->num_rows > 0) {
                        echo "<tr>";
                        foreach ($firstRow as $field => $value){
                            echo "<td>" . $value . "</td>";
                        }
                        echo "</tr>";

                    while($data = $result->fetch_assoc()) {
                        echo "<tr>";
                        foreach ($data as $field => $value){
                            echo "<td>" . $value . "</td>";
                        }
                        echo "</tr>";
                    }
                }
                ?>
            </tbody>
        </table>

关于javascript - 使用带有动态 header 的数据表在我的网站上显示 mysql 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432357/

相关文章:

javascript - Globby 和 rimraf 应该删除除 .yml 文件之外的所有内容

javascript - 为什么 react 组件没有捕获 axios 错误

php - 将图像裁剪或蒙版成圆形

php - Laravel - 保存与更新

javascript - 如果当前页面需要 x 秒加载,重定向到另一个页面?

javascript - 如何将数据从 render 方法传递到 React 中的多个组件?

javascript - 从 Angular Controller 增加 JSON 中的字段

html - 自动刷新网页

javascript - HTML5 Audio Tag JS touchstart 事件适用于 iPad,不适用于 iPhone

html - 如何在调整屏幕大小时移动水平 li 的所有内容?