2015-04-30 124 views
2

我的数据库有一个名为tblprojects列名说,project_num,project_status,PROJECT_NAME表。我想使用foreach循环从数据库中获取数据并在php表中显示记录。如何使用的foreach从数据库表中获取数据 -

但是我无法使用以下代码显示记录。请帮我纠正它。我是使用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> 

请帮我解决这个问题,请回答修正码(首选)。提前致谢。

+2

请,[停止使用'mysql_ *'功能(HTTP ://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。他们不再被维护,并[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。了解[准备的陈述](http://en.wikipedia.org/wiki/Prepared_statement),并使用[PDO](http://jayblanchard.net/demystifying_php_pdo.html)。你不应该需要'foreach()'。 –

+0

谢谢你的建议。我会照顾不再使用mysql_函数。但是我想用每个来获取数据,因为我想将我的每一行表格链接到一个显示所有剩余列中的数据的模式。 –

回答

7

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 
    } 
?> 
+1

谢谢你的建议。但是我想用foreach来获取数据,因为我想将我的每一行表格链接到引导模式,该引导模式也显示剩余列中的所有数据。 (我实际上有5列,但在表中显示只有3,模态会显示每行5列的所有数据)因此,问我如何链接foreach与这个while循环。 –

+0

然后首先创建数组,然后使用foreach。 –

+0

如果您可以编辑您的代码并将其展示给我,这将非常有帮助,因为我尝试过使用它,但无法解决问题。 (请参阅我的代码的顶部行)。先谢谢你。 –

0

您好试试这个代码,你有没有需要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 
    } 
?> 
0
<?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> 
+1

请给你的答案添加一些解释。谢谢! – Sampada

+0

@Sampada:我添加了评论来解释。如果需要进一步解释,请回复 –

+0

这对您有帮助吗? –

相关问题