Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用while()即使为空也显示_Php_Mysql - Fatal编程技术网

Php 使用while()即使为空也显示

Php 使用while()即使为空也显示,php,mysql,Php,Mysql,我有一个表,我使用PHP和a while()显示它的内容;表中大约有三个字段为空,但可以更改,但我希望它们仍然显示表中的所有结果 但是,它只显示每个字段中包含数据的记录。有人知道我如何展示它吗?我得到一个表的计数,它给我2,但只显示一个 <h3>Viewing All Updates</h3> <h4>Below are all active updates for COTC</h4> <table> <thead>

我有一个表,我使用PHP和a while()显示它的内容;表中大约有三个字段为空,但可以更改,但我希望它们仍然显示表中的所有结果

但是,它只显示每个字段中包含数据的记录。有人知道我如何展示它吗?我得到一个表的计数,它给我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>
查看所有更新
以下是COTC的所有活动更新
站点名称
页
旗帜
发送日期
看法

您的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

如果此查询在
客户端
中有匹配的行,并且在
页面
中有匹配的行,则该查询只会在
更新
中返回一行。如果您希望
客户端
页面
连接是可选的(一个
更新
行,该行具有
c\u id
页面
仍将返回),请将它们从
内部连接
s更改为
左连接
s。

所讨论的PHP将非常有帮助;听起来您的条件很早就中止了(第一个循环),但是没有问题的代码。。。这只是一个猜测(tm)。听起来很不寻常——你能把while()包含在问题中吗?看看代码,它没有错。我的猜测是SQL连接没有做你认为他们正在做的事情。有没有关于如何清理它的建议?我可以向您解释任何关系。它将是我的while()中不会显示的其他字段;但在其他地方。。。。我不确定我是否在跟踪表中的所有行,这些行的所有字段都填充了数据。如果其中任何一个字段的值为NULL,则它们将不会使用我发布的代码显示。