PHP调用后未显示后续HTML

PHP调用后未显示后续HTML,php,Php,我对PHP编程比较陌生。我正在构建一个小的crud应用程序(待办事项列表),以便准确地进行练习。我正在充实UI,并测试如何在页面上显示数据库中的信息 当用户登录时,将向他们显示一个包含所有已保存项目的表 列出项目的表格 <div class="container"> <table class="table"> <tr> <th>Completed</th> <th>De

我对PHP编程比较陌生。我正在构建一个小的crud应用程序(待办事项列表),以便准确地进行练习。我正在充实UI,并测试如何在页面上显示数据库中的信息

当用户登录时,将向他们显示一个包含所有已保存项目的表

列出项目的表格

  <div class="container">
    <table class="table">
      <tr>
        <th>Completed</th>
        <th>Description</th>
        <th>Actions</th>
      </tr>
      <tr>
        <td colspan="3"></td>
      </tr>
      <?php
      $document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
      while($match_value = mysql_fetch_array($document_get)) {
      ?>
      <tr>
        <td>
          Hi
        </td>
      </tr>
    </table>
    <?php
    }
    ?>
  </div>

完整的
描述
行动

mysql\u fetch\u array
返回一个数组。while语句的结构不会产生您想要的结果。while循环将永远保持为真,因为while条件中没有任何变化

这应该具有更接近您所寻找的效果:

$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
$match_value = mysql_fetch_array($document_get);
foreach ($match_value as $value){
    //Do something
}
作为旁注,我强烈建议使用PDO,不要将php与html结合起来。此处有教程:

如果使用PDO,您的循环将更像这样:

while($row = $st->fetch(PDO::FETCH_ASSOC)){
    //Do something
}

mysql\u fetch\u array
返回一个数组。while语句的结构不会产生您想要的结果。while循环将永远保持为真,因为while条件中没有任何变化

这应该具有更接近您所寻找的效果:

$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
$match_value = mysql_fetch_array($document_get);
foreach ($match_value as $value){
    //Do something
}
作为旁注,我强烈建议使用PDO,不要将php与html结合起来。此处有教程:

如果使用PDO,您的循环将更像这样:

while($row = $st->fetch(PDO::FETCH_ASSOC)){
    //Do something
}

在此处输入代码
在此处输入代码尝试从以下位置更改查询:

$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");


尝试从以下位置更改查询:

$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");


有几件事:1。此代码易受攻击。这很糟糕。不要使用
mysql\u
函数,它们已被弃用。如果您使用的是PHP7,它们将被删除,这就是问题所在。2.检查以调试您的问题。您确定没有显示最后一个
?如果不是,则表示存在语法错误。如果是,则根本没有数据显示。另一方面,您的while循环应该在not after之后结束,谢谢您的评论。我开始使用的示例实际上是在PHP5.6上运行的。在查看较新的文档时,我注意到了很多看起来不正确的地方。我正在改变现状,所以我将改用PHP7。最后一个DIV没有显示出来,也就是说,这个DIV只说了几句“嗨”:1。此代码易受攻击。这很糟糕。不要使用
mysql\u
函数,它们已被弃用。如果您使用的是PHP7,它们将被删除,这就是问题所在。2.检查以调试您的问题。您确定没有显示最后一个
?如果不是,则表示存在语法错误。如果是,则根本没有数据显示。另一方面,您的while循环应该在not after之后结束,谢谢您的评论。我开始使用的示例实际上是在PHP5.6上运行的。在查看较新的文档时,我注意到了很多看起来不正确的地方。我正在改变现状,所以我将改用PHP7。未显示最后一个DIV,即仅显示“Hi”的DIV。这不会解决问题。可以在双引号字符串中使用变量。这不会解决问题。可以在双引号字符串中使用变量。while不是问题所在。实际上,需要逐行检索结果(与您建议的PDO相同)。mysql_fetch_array()只是将行的列作为关联数组,而不是数字数组。while不是问题所在。实际上,需要逐行检索结果(与您建议的PDO相同)。mysql_fetch_array()只是将行的列作为关联数组,而不是数字数组。
$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='".$user_id."' ORDER BY id DESC");