使用SQL和PHP创建数据表 - 需要简单的解释

时间:2018-01-16 12:04:50

标签: php html database datatable

我有这段代码,想要问一下,当结果集中没有行时,while($ row = mysqli_fetch_assoc($ result_table_main))是否结束? 不明白为什么会结束,因为虽然没有反击。 这是我帖子中唯一的问题。也许你可以给我一个正确的解释。

我在这方面工作很长时间,因为我之前对此并不了解。现在我需要为我的工作付出代价。

感谢您的回答!

<?php
$sql_table_main = "SELECT id,name_Gleitzeitrahmen, name_Abweichungen, name_Mehrarbeitervolumen, name_Mehrarbeit1, name_Ausgleich, name_Mehrarbeit2, name_Personalmassnahmen, name_Ueberstunden, name_Ueberstunden_abzusehen, name_Klaerungsbedarfe1, name_Klaerungsbedarfe2 FROM landrat_dashboard";
$result_table_main = mysqli_query($con, $sql_table_main);
?>

<div class="card-content table-responsive table-maxheight" style="overflow:scroll;">
<table class="table table-hover table-mc-green table-bordered table-striped table-condensed">
    <thead class="text-primary">
        <th class="thbackground_green">ID</th>
        <th class="thbackground_green">Gleitzeitrahmen</th>
        <th class="thwidth thbackground_green">Abweichungen</th>
        <th class="thwidth thbackground_green">Mehrarbeitervolumen</th>
        <th class="thwidth thbackground_green">Mehrarbeit</th>
        <th class="thwidth thbackground_green">Ausgleich</th>
        <th class="thwidth thbackground_green">Mehrarbeit</th>
        <th class="thwidth thbackground_green">Personalma&szlig;nahmen</th>
        <th class="thwidth thbackground_green">&Uuml;berstunden im Rahmen?</th>
        <th class="thwidth thbackground_green">Sind &Uuml;berstunden abzusehen?</th>
        <th class="thbackground_green">Kl&auml;rungsbedarfe</th>
        <th class="thwidth thbackground_green">Kl&auml;rungsbedarfe Beschreibung</th>
    </thead>
    <tbody>
        <?php
        if(mysqli_num_rows($result_table_main) > 0){
            while ($row = mysqli_fetch_assoc($result_table_main)) {
            echo '<tr>';
            echo '<td>'. $row['id'] .'</td>';
            echo '<td>'. $row['name_Gleitzeitrahmen'] .'</td>';
            echo '<td>'. $row['name_Abweichungen'] .'</td>';
            echo '<td>'. $row['name_Mehrarbeitervolumen'] .'</td>';
            echo '<td>'. $row['name_Mehrarbeit1'] .'</td>';
            echo '<td>'. $row['name_Ausgleich'] .'</td>';
            echo '<td>'. $row['name_Mehrarbeit2'] .'</td>';
            echo '<td>'. $row['name_Personalmassnahmen'] .'</td>';
            echo '<td>'. $row['name_Ueberstunden'] .'</td>';
            echo '<td>'. $row['name_Ueberstunden_abzusehen'] .'</td>';
            echo '<td>'. $row['name_Klaerungsbedarfe1'] .'</td>';
            echo '<td>'. $row['name_Klaerungsbedarfe2'] .'</td>';
            echo '</tr>';
            }
        }
        ?> 
    </tbody>
</table>

2 个答案:

答案 0 :(得分:1)

       <?php
    if(mysqli_num_rows($result_table_main) > 0){
        while ($row = mysqli_fetch_assoc($result_table_main)) {
        echo '<tr>';
        echo '<td>'. $row['id'] .'</td>';
        echo '<td>'. $row['name_Gleitzeitrahmen'] .'</td>';
        echo '<td>'. $row['name_Abweichungen'] .'</td>';
        echo '<td>'. $row['name_Mehrarbeitervolumen'] .'</td>';
        echo '<td>'. $row['name_Mehrarbeit1'] .'</td>';
        echo '<td>'. $row['name_Ausgleich'] .'</td>';
        echo '<td>'. $row['name_Mehrarbeit2'] .'</td>';
        echo '<td>'. $row['name_Personalmassnahmen'] .'</td>';
        echo '<td>'. $row['name_Ueberstunden'] .'</td>';
        echo '<td>'. $row['name_Ueberstunden_abzusehen'] .'</td>';
        echo '<td>'. $row['name_Klaerungsbedarfe1'] .'</td>';
        echo '<td>'. $row['name_Klaerungsbedarfe2'] .'</td>';
        echo '</tr>';
        }
    }
    ?> 

这意味着:它在rusult中的行数大于0,然后对结果中的每一行都做回声。

是的:

  

如果while($ row = mysqli_fetch_assoc($ result_table_main))在结果集中没有行时结束了吗?

答案 1 :(得分:1)

来自函数mysqli_fetch_assoc的documentation的引用:

  

返回值:返回表示的字符串的关联数组   取了一排。如果结果集中没有更多行,则为NULL

因此,如果没有更多的行来获取该函数将返回null。如果查看while循环条件,它将如下所示(仅当没有更多行时):

$row = null

评估为 false ,因此不符合条件,因此循环将结束。