我有一个表,我正在使用PHP和while()显示其内容;我在表中有三个字段是NULL但可以更改,但我希望它们仍然在我的表中显示所有结果。
但是,它只显示每个字段中包含数据的记录。有人如何展示它?我得到了桌子的数量,它给了我2,但只显示了一个。
<h3>Viewing All Updates</h3>
<h4>Below are all active updates for COTC</h4>
<table>
<thead>
<tr>
<th>Site Name</th>
<th>Page</th>
<th>Flag</th>
<th>Date Sent</th>
<th>View</th>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT sname,page_name,date_submitted,u_id,clients.c_id,flag,completed FROM updates INNER JOIN clients ON updates.c_id = clients.c_id INNER JOIN pages ON updates.page = pages.p_id ORDER BY date_submitted DESC";
$query = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($query)){
$completed = $row['completed'];
if($completed == 1){
print '<tr class="quiet">';
}else{
print '<tr>';
}
print '<td>'.$row['sname'].'</td>';
print '<td>'.$row['page_name'].'</td>';
print '<td>'.$row['flag'].'</td>';
print '<td>'.$row['date_submitted'].'</td>';
print '<td class="center"><a href="?c=displayupdate&id='.$row['u_id'].'" title="View update for '.$row['sname'].'" id="'.$row['u_id'].'"><img src="images/page_edit.png" alt="Edit entry!" /></a></td>';
print '</tr>';
}
?>
</tbody>
</table>
答案 0 :(得分:1)
您的PHP正确打印返回的每一行。我相信您的问题出在查询中。
SELECT sname,page_name,date_submitted,u_id,clients.c_id,flag,completed
FROM updates INNER JOIN clients ON updates.c_id = clients.c_id
INNER JOIN pages ON updates.page = pages.p_id
ORDER BY date_submitted DESC
如果updates
中的匹配项与clients
中的匹配项匹配,则此查询将仅返回pages
中的行。如果您希望clients
或pages
联接是可选的(updates
行c_id
或page
NULL
仍会返回)将它们从INNER JOIN
更改为LEFT JOIN
s。