【问题标题】:How to use foreach get data from the database table --如何使用foreach从数据库表中获取数据——
【发布时间】:2015-07-10 04:42:55
【问题描述】:

我的数据库有一个名为 tblprojects 的表,其列名称为 project_num、project_status、project_name。我想使用 foreach 循环从数据库中获取数据并在 php 表中显示记录。

但是我无法使用以下代码显示记录。请帮我纠正它。刚开始使用 PHP。

以下是我写的代码:

<?php
     $projects = array();
     // fetch data from the database
     $records = mysql_query('select project_num, project_status, project_name from tblprojects') or die("Query fail: " . mysqli_error());
?>


<table  class="table table-striped table-condensed" id="tblData">
    <thead>
        <tr>
            <th>Project Name</th>
            <th>Project Number</th>
            <th>Project Status</th>
       </tr>
    </thead>

    <tbody>
       <?php 
            while (  $row =  mysql_fetch_assoc($records)    )
            {
                $projects[] = $row;
                foreach ($projects as $project):
      ?>
        <tr>
            <td><?echo $project['proj_name']; ?></td>
            <td><?echo $proj['proj_num']; ?></td>
            <td><?echo $proj['proj_status']; ?></td>
        </tr>

      <?php endforeach; 
           }
      ?>


    </tbody>        
</table>

请帮我解决问题,用更正的代码回复(首选)。提前非常感谢。

【问题讨论】:

  • stop using mysql_* functions。它们不再被维护并且是officially deprecated。请改为了解prepared statements,并使用PDO。你不应该需要foreach()
  • 感谢您的建议。我会注意不再使用 mysql_ 函数。但是我想使用 for each 来获取数据,因为我想将表格的每一行链接到一个模式,该模式也显示剩余列中的所有数据。

标签: php html mysql foreach


【解决方案1】:

这里不需要foreach

<?php 
    $projects = array();
    while ($project =  mysql_fetch_assoc($records))
    {
        $projects[] = $project;
    }
    foreach ($projects as $project)
    {
?>
    <tr>
        <td><?php echo $project['proj_name']; ?></td>
        <td><?php echo $project['proj_num']; ?></td>
        <td><?php echo $project['proj_status']; ?></td>
    </tr>
<?php
    }
?>

【讨论】:

  • 感谢您的建议。但是我想使用 foreach 获取数据,因为我想将表格的每一行链接到一个引导模式,该模式还显示剩余列中的所有数据。 (我实际上有 5 列,但在表格中仅显示 3 列,而模式将在每行的 5 列中显示所有数据)因此询问如何将 foreach 与此 while 循环链接。
  • 那么先创建数组再使用foreach。
  • 如果您可以编辑您的代码并将其展示给我,这将非常有帮助,因为我尝试过使用它但无法解决。 (请参阅我的代码的顶部行)。提前谢谢你。
  • 更新了答案。希望对你有帮助。
【解决方案2】:
<?php
         // fetch data from the database
         $records = mysql_query('select project_num, project_status, project_name from tblprojects') or die("Query fail: " . mysqli_error());
?>
<table  class="table table-striped table-condensed" id="tblData">
    <thead>
        <tr>
            <th>Project Name</th>
            <th>Project Number</th>
            <th>Project Status</th>
       </tr>
    </thead>

    <tbody>
       <?php 
            //records as in an array

foreach( $records as $data ) // using foreach  to display each element of array
            {
                echo "<tr><td>".$data['proj_name']."</td>
                          <td>".$data['proj_num']."</td>
                          <td>".$data['proj_status']."</td>
                       </tr>";
            }
       ?>
    </tbody>        
</table>

【讨论】:

  • 请为您的答案添加一些解释。谢谢!
  • @Sampada :我添加了 cmets 来解释。如果需要任何进一步的解释,请回复
【解决方案3】:

你好试试这个代码,你不需要foreach循环,这样可以节省你的时间和将来的好习惯

<?php 
    $projects = array();
    while ($project =  mysql_fetch_assoc($records))
    {

?>
    <tr>
        <td><?php echo $project['proj_name']; ?></td>
        <td><?php echo $project['proj_num']; ?></td>
        <td><?php echo $project['proj_status']; ?></td>
    </tr>
<?php
    }
?>

【讨论】:

    猜你喜欢
    • 2020-01-22
    • 2012-06-13
    • 2011-10-19
    • 2014-10-16
    • 2014-12-03
    • 2011-11-06
    • 2020-06-14
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多