Php sqlsrv仅显示最近的行条目

Php sqlsrv仅显示最近的行条目,php,sql,sql-server,Php,Sql,Sql Server,我有一个SQL命令,用于显示所有用户和所有操作。 但实际情况是,它只显示用户最近的行条目,而不是所有条目 我的SQL是 $stmt= " SELECT * FROM Actions FULL OUTER JOIN Users ON Actions.userID=Users.id; "; $query = sqlsrv_query($link,$stmt); $row = sqlsrv_fetch_array($query); 然后我将它输出到一个表中,作为 while($ro

我有一个SQL命令,用于显示所有用户和所有操作。 但实际情况是,它只显示用户最近的行条目,而不是所有条目

我的SQL是

$stmt=

"
SELECT *
 FROM Actions
 FULL OUTER JOIN Users
 ON Actions.userID=Users.id;
";  


$query = sqlsrv_query($link,$stmt); 
$row = sqlsrv_fetch_array($query);
然后我将它输出到一个表中,作为

while($row = sqlsrv_fetch_array($query,SQLSRV_FETCH_ASSOC)) 
{
    echo '<td>' . $row['id'] . '</td>'; 
    ...
}
--

实际:

ID  |  USER  |  ACTION  |  TIME

2     Bravo    Pswd Change 00:00

1     Alpha    Logged-out  00:01
这似乎是:

$query = sqlsrv_query($link,$stmt); 
$row = sqlsrv_fetch_array($query);
第二行正在使用数组中的第一行。是吗


我猜这是缓冲区中的指针(不是PHP人员)。因此,while()循环从第2行开始。

您的查询不会有您描述的行为。你能用样本数据以及期望的和实际的结果编辑你的问题吗?同意@GordonLinoff,你的SQL看起来是正确的。这将返回两个表中的所有行,在可能的情况下连接它们,在不可能连接的情况下保留null。如果每个用户只得到一行,我的第一个怀疑是代码中负责在前端显示结果的部分。如果直接在SQL中运行查询,会得到正确的结果吗?我已经添加了期望的/实际的结果。是的,如果我直接查询DB,我会得到正确的结果缺少某些内容,请添加表?这不是SQL Server的问题。如果直接在数据库上运行的查询为您提供了正确的结果,那么您在PHP处理/显示方面一定做得不对。
$query = sqlsrv_query($link,$stmt); 
$row = sqlsrv_fetch_array($query);