当循环向前获取第二个值而不是第一个值时?PHP MSQL SP FPDF

当循环向前获取第二个值而不是第一个值时?PHP MSQL SP FPDF,php,sql-server,Php,Sql Server,我的while循环从第二个值开始,它不显示第一个值。如果您有任何帮助,我们将不胜感激 虽然循环语句如下所示,但我使用FPDF导出结果,但我不确定这是否与调用第二个值有关 while($dbRow = sqlsrv_fetch_array($dbQuery, SQLSRV_FETCH_ASSOC)) { $pdf->cell(0,10,'Impact for'.' '.$dbRow['Stakeholder_ID'].' is: '.iconv("UTF

我的while循环从第二个值开始,它不显示第一个值。如果您有任何帮助,我们将不胜感激

虽然循环语句如下所示,但我使用FPDF导出结果,但我不确定这是否与调用第二个值有关

  while($dbRow = sqlsrv_fetch_array($dbQuery, SQLSRV_FETCH_ASSOC)) {

                $pdf->cell(0,10,'Impact for'.' '.$dbRow['Stakeholder_ID'].' is: '.iconv("UTF-8", "ISO-8859-1", "£").''.$dbRow['Stakeholder_Return'],0,1 ,'',true );
        }

如果您看一下这一行代码,谢谢您:

if($dbRow = sqlsrv_fetch_array($dbQuery, SQLSRV_FETCH_ASSOC))
你会看到:

  • 它出现在你的while循环之前

  • 因此,while循环获得第二行(因为sqlsrv\u fetch\u array返回下一行)

  • 这意味着,通过调用if语句中的sqlsrv_fetch_array,您可以增加计数器,下一次调用将得到第二行

    解决方案:

    $isFirstRow = true;
    
    while($dbRow = sqlsrv_fetch_array($dbQuery, SQLSRV_FETCH_ASSOC)) {
        if($isFirstRow){
             $pdf->cell(0,10,'Overall socio-environmental impact ratio: '.iconv("UTF-8", "ISO-8859-1", "£").''.$dbRow['Schema_Return'],0,1,'',true );
             $isFirstRow = false;
        }
        $pdf->cell(0,10,'Impact for'.' '.$dbRow['Stakeholder_ID'].' is: '.iconv("UTF-8", "ISO-8859-1", "£").''.$dbRow['Stakeholder_Return'],0,1 ,'',true );
    }
    
    您也可以删除以下行:

    do{
    //...Code in between
    } while ( sqlsrv_next_result($dbQuery));
    

    感谢您的回复,我做了上述操作,基本上在这里得到了一个空白屏幕(如果($dbRow=sqlsrv_fetch_数组($dbQuery,sqlsrv_fetch_ASSOC)){$pdf->cell(0,10,'总体社会环境影响比:'.iconv(“UTF-8”,“ISO-8859-1”,“英镑”)。$dbRow['Schema_Return',0,1',true);)我只想让它显示一个数字,但在这里,($dbRow=sqlsrv_fetch_array($dbQuery,sqlsrv_fetch_ASSOC)){$pdf->cell(0,10,'Impact for'.'.$dbRow['涉众_ID'.]是:'.iconv(“UTF-8”,“ISO-8859-1”,“……我想展示所有的价值,不只是第二OnWARDI将更新代码给新的信息。但是,你所提到的空白屏幕可能因为太多的原因而发生。你可以在应用我编辑的答案之后上传你的代码到巴斯丁吗?(如果你还有空白屏幕)。空白屏幕不再存在。但是,它现在不打印任何值,您仍然希望我将代码放在pastebin上吗?是的,请。它将帮助我。我可以将它放在您的面前,只是为了让您看到,因为我不想将其公开