使用 while 循环时 DB 的第一个结果未显示

First result from DB not showing when using while loop

我正在创建一个 php 脚本以根据存储在 SQL 中的数据生成报告,查询在这里:

$sql = $adb->query("SELECT firstname, lastname, policynumber, isatype, isaname, startdate, unitvalue, numberofunits, currentamount, date, newunitvalue, newnumberofunits, newcurrentamount
                                FROM vtiger_isa, vtiger_addisa, vtiger_contactdetails
                                WHERE vtiger_isa.relatedclient = vtiger_addisa.addrelatedclient
                                AND vtiger_addisa.addrelatedclient = vtiger_contactdetails.contactid
                                AND vtiger_isa.relatedclient = $clientid
                                AND vtiger_isa.policynumber = $polnum
                                AND vtiger_addisa.addrelatedclient = $clientid
                                AND vtiger_addisa.newpolicynumber = $polnum
                                ORDER BY date ASC"
                               );

我用 print_r($sql); 测试过,效果很好,我想要的结果就在那里。尽管当我遍历结果时它们没有显示。我已经用不同的 clientid 进行了测试,第一个结果似乎被遗漏了。

<b> New Figures:</b>
 <table  style="width:100%">
 <tr>
    <th>Date</th>
    <th>Unit Value (P)</th>
    <th>Number of Units</th> 
    <th>Total Value (£)</th>
    </tr>
 <?php
while ($sql->fetchInto($row)) {
    ?>
   <tr>
   <td><?php echo $row['date'];?></td>
   <td><?php echo $row['newunitvalue'];?></td>
    <td><?php echo $row['newnumberofunits'];?></td>
    <td><?php echo $row['newcurrentamount'];?></td>
    </tr>
    <?php
}?>
 </table>
 </body>
</html>

我没有使用 fetchInto() 方法。我使用以下示例:

<?php
$sql = $adb->query("...");

foreach($sql as $row){
   ?>
   <tr>
    <td><?php echo $row['date'];?></td>
    <td><?php echo $row['newunitvalue'];?></td>
    <td><?php echo $row['newnumberofunits'];?></td>
    <td><?php echo $row['newcurrentamount'];?></td>
   </tr>
   <?php
}
?>

这每次都有效。试试吧。