我的数据库有一个名为 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>
请帮我解决问题,回复更正后的代码(首选)。非常感谢提前。
答案 0 :(得分:9)
此处不需要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 :(得分:0)
你好尝试这个代码,你不需要预先循环,这样可以节省你的时间和未来的良好实践
<?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
}
?>
答案 2 :(得分: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>