在PHP上从MSSQL检索数据时,行结果少了

时间:2018-08-24 05:44:38

标签: php sqlsrv

我正在尝试从PHP上的SQL Server检索数据。 但是我在这里面临一些问题。 相同的sql查询,数据库中显示的记录为6行,但在PHP上仅显示5行。任何想法?预先感谢。

SQL结果

SQL

PHP结果

PHP

代码

$stmt = sqlsrv_prepare($conn, $sql);
    $result = sqlsrv_execute($stmt);
    $row = sqlsrv_fetch_array($stmt);
    $i = 1;
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) 
        { ?>

代码

 <tr>
   <td><?php echo $i++;?></td>
 <?php foreach($row as $item ) {   ?>
<td><?=$item ?> </td>

2 个答案:

答案 0 :(得分:0)

<band height="256" splitType="Stretch">
            <componentElement>
                <reportElement x="0" y="0" width="555" height="50" uuid="eb5b00f3-c370-4c7f-bb10-b7589ff293ff"/>
                <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
                    <datasetRun subDataset="listDataset" uuid="364ec058-5b7e-43e0-9272-92907dfba7f3">
                        <datasetParameter name="REPORT_DATE">
                            <datasetParameterExpression><![CDATA[$P{REPORT_DATE}]]></datasetParameterExpression>
                        </datasetParameter>
                        <dataSourceExpression><![CDATA[$P{REPORT_CONNECTION}]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="50" width="555">
                        <staticText>
                            <reportElement x="1" y="2" width="100" height="20" uuid="cd4ed06d-2c04-4342-8cc2-ff7077621eb6"/>
                            <text><![CDATA[LABEL_VALUE]]></text>
                        </staticText>
                        <textField>
                            <reportElement x="101" y="2" width="129" height="20" uuid="d307fa41-0962-4b17-812d-774262e55e9e"/>
                            <textFieldExpression><![CDATA[$F{LABEL_VALUE}]]></textFieldExpression>
                        </textField>
                        <staticText>
                            <reportElement x="230" y="2" width="140" height="20" uuid="20989891-eb66-45ee-8fbb-b7c53a65f0fe"/>
                            <text><![CDATA[ATTRIBUTE_VALUE]]></text>
                        </staticText>
                        <textField>
                            <reportElement x="370" y="2" width="184" height="20" uuid="fa972e53-dc8a-402e-96ad-9428b402ccd8"/>
                            <textFieldExpression><![CDATA[$F{ATTRIBUTE_VALUE}]]></textFieldExpression>
                        </textField>
                    </jr:listContents>
                </jr:list>
            </componentElement>
</band>

答案 1 :(得分:0)

您没有从服务器输出第一行数据:此语句中分配的$row的值

$row = sqlsrv_fetch_array($stmt);

被该语句覆盖

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) 

在使用之前。您应该只从代码中删除第一条语句,即

$stmt = sqlsrv_prepare($conn, $sql);
$result = sqlsrv_execute($stmt);
$i = 1;
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))