为什么我的第二个选择sql comman命令在第一个选择时不起作用?

时间:2018-11-27 21:11:16

标签: php html sql select

我正在尝试编写使用SQL和PHP的清单,并试图将sql数据库中的数据显示到HTML表中。我试图将其放在两个不同的表中,其中一个显示已完成的记录,另一个显示没有的记录。 用于显示带有已完成记录的表的代码可以很好地显示它们,但是第二个不显示记录。 任何帮助将不胜感激!

    <div class="table_undone"> 
<!--Display undone checklist items-->
    <h2>STILL TO DO</h2>
    <?php
        $sql = "SELECT * FROM checklist WHERE done = '' ORDER BY id";
        $result = $conn->query($sql);
        if ($result->num_rows > 0) {
            //display the header of the table
            echo "<table>
                    <tr>
                        <th>ID</th>
                        <th>ITEM</th>
                        <th>DUE DATE</th>
                        <th>DONE</th>
                        <th></th>
                        <th></th>
                    </tr>";
            while ($row = $result->fetch_assoc()) {
                //display the contents of the table
                echo "<tr>
                        <td>".$row['id']."</td>
                        <td>".$row['item']."</td>
                        <td>".$row['due_date']."</td>
                        <td>".$row['done']."</td>
                      </tr>";
            } 
            echo "</table>";
        } else {
            echo "0 RESULTS";
        }
        $conn->close();
    ?>
</div>
<div class="table_done"> 
<!--Display complete checklist items-->
    <h2>COMPLETE!</h2>
    <?php
        $sql = "SELECT * FROM checklist WHERE done != '' ORDER BY id";
        $result = $conn->query($sql);
        if ($result->num_rows > 0) {
            //display the header of the table
            echo "<table>
                    <tr>
                        <th>ID</th>
                        <th>ITEM</th>
                        <th>DUE DATE</th>
                        <th>DONE</th>
                        <th></th>
                        <th></th>
                    </tr>";
            while ($row = $result->fetch_assoc()) {
                //display the contents of the table
                echo "<tr>
                        <td>".$row['id']."</td>
                        <td>".$row['item']."</td>
                        <td>".$row['due_date']."</td>
                        <td>".$row['done']."</td>
                      </tr>";
            } 
            echo "</table>";
        } else {
            echo "0 RESULTS";
            echo $sql;
        }
        $conn->close();
    ?>
</div>

应该在第二个表的位置显示状态mtn 0结果显示,即使应该在数据库中显示记录也是如此。

1 个答案:

答案 0 :(得分:-1)

如果我没看错,您在第一个连接后关闭了连接:

panel1.BackgroundColor=Color.Transparent;

因此第二个查询没有连接可继续使用(它使用与关闭时相同的$ conn)。第一次查询后(最后)删除该行。