即使使用NULLS,也可以使用while()显示

时间:2009-01-28 02:58:01

标签: php mysql

我有一个表,我正在使用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>

1 个答案:

答案 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中的行。如果您希望clientspages联接是可选的(updatesc_idpage NULL仍会返回)将它们从INNER JOIN更改为LEFT JOIN s。