Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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而HTML表_Php_Html_Sql_While Loop_Html Table - Fatal编程技术网

PHP而HTML表

PHP而HTML表,php,html,sql,while-loop,html-table,Php,Html,Sql,While Loop,Html Table,我正在尝试使用while循环将代码显示在HTML表中。但是,我无法显示我的表。我试图呼应桌子的方式有问题吗 <?php #-----call includes-----# include('E:/includes/database.php'); include('E:/includes/sendmail.php'); ini_set('error_reporting', E_ALL ^ E_NOTICE); ini_set('display_errors','on');

我正在尝试使用
while
循环将代码显示在HTML表中。但是,我无法显示我的表。我试图呼应桌子的方式有问题吗

 <?php


 #-----call includes-----# include('E:/includes/database.php'); 
 include('E:/includes/sendmail.php');

 ini_set('error_reporting', E_ALL ^ E_NOTICE); 
 ini_set('display_errors','on');


 $do = $_REQUEST['do']; 


$queryOrders = "select t2.SlpName As 'Seller', t1.SWW As 'Vendor', t0.DocDate As 'Date',t0.DocTotal As 'Total'
                from twh.dbo.OINV t0
                  inner join twh.dbo.inv1 t1  on t0.DocEntry = t1.DocEntry

         inner join twh.dbo.OSLP t2 on t1.SlpCode = t2.SlpCode
                where t0.DocDate > DATEADD (month, -2, getdate())
                  order by t0.DocTotal desc";

$resultItemData = sqlsrv_query($con, $queryOrders);


    echo "<table border=\"1\" align=\"center\">";
    echo "<tr><th>Seller</th>";
    echo "<th>Vendor</th>";
    echo "<th>Date</th>";
    echo "<th>Total</th></tr>"
    while($rowItemData = sqlsrv_fetch_array($resultItemData)){
        echo "<tr><td>";
        echo "$resultItemData";
        echo "</td></tr>";
    endwhile;

    }
    echo"</table>";

我还没有看完你的全部代码,但我可以看到错误的语法

while($rowItemData = sqlsrv_fetch_array($resultItemData)){
    echo "<tr>";
    echo "<td>".$resultItemData['Seller']."</td>";
    echo "<td>".$resultItemData['Vendor']."</td>";
    echo "<td>".$resultItemData['Date']."</td>";
    echo "<td>".$resultItemData['Total']."</td>";
    echo "</tr>";
}
while($rowItemData=sqlsrv\u fetch\u数组($resultItemData)){
回声“;
回显“$resultItemData['Seller']”;
回显“$resultItemData['Vendor']”;
回显“$resultItemData['Date']”;
回显“$resultItemData['Total']”;
回声“;
}

while($rowItemData=sqlsrv\u fetch\u数组($resultItemData)):
回声“;
回显“$resultItemData['Seller']”;
回显“$resultItemData['Vendor']”;
回显“$resultItemData['Date']”;
回显“$resultItemData['Total']”;
回声“;
结束时;
更新:
您仍然可以优化代码,我只是给出了示例工作

我还没有看完您的完整代码,但我可以看到错误的语法

while($rowItemData = sqlsrv_fetch_array($resultItemData)){
    echo "<tr>";
    echo "<td>".$resultItemData['Seller']."</td>";
    echo "<td>".$resultItemData['Vendor']."</td>";
    echo "<td>".$resultItemData['Date']."</td>";
    echo "<td>".$resultItemData['Total']."</td>";
    echo "</tr>";
}
while($rowItemData=sqlsrv\u fetch\u数组($resultItemData)){
回声“;
回显“$resultItemData['Seller']”;
回显“$resultItemData['Vendor']”;
回显“$resultItemData['Date']”;
回显“$resultItemData['Total']”;
回声“;
}

while($rowItemData=sqlsrv\u fetch\u数组($resultItemData)):
回声“;
回显“$resultItemData['Seller']”;
回显“$resultItemData['Vendor']”;
回显“$resultItemData['Date']”;
回显“$resultItemData['Total']”;
回声“;
结束时;
更新:
您仍然可以优化代码,我只是对示例工作进行了一些修改。选中此项:

while($rowItemData = sqlsrv_fetch_array($resultItemData)) :
    echo "<tr><td>";
    echo $rowItemData[ColumnValue]; //In your code, didn't access the column value earlier 
    echo "</td></tr>";
endwhile;
while($rowItemData=sqlsrv\u fetch\u数组($resultItemData)):
回声“;
echo$rowItemData[ColumnValue]//在代码中,以前没有访问列值
回声“;
结束时;

修改了一点。选中此项:

while($rowItemData = sqlsrv_fetch_array($resultItemData)) :
    echo "<tr><td>";
    echo $rowItemData[ColumnValue]; //In your code, didn't access the column value earlier 
    echo "</td></tr>";
endwhile;
while($rowItemData=sqlsrv\u fetch\u数组($resultItemData)):
回声“;
echo$rowItemData[ColumnValue]//在代码中,以前没有访问列值
回声“;
结束时;

您应该指定数组的索引
$rowitemdata.

例如:

echo"<tr><td>".$rowitemdata['Vendor']." 
echo'.$rowitemdata['Vendor']

您应该指定数组的索引
$rowitemdata.

例如:

echo"<tr><td>".$rowitemdata['Vendor']." 
echo'.$rowitemdata['Vendor']

存在一系列问题:

  • 首先,用
    {
    打开while,但用
    结束while;
    -虽然技术上没有问题,但不一致-如果用
    {
    打开,最好用
    }
    结束

  • 其次,您试图回显整个阵列,这将无法正常工作

  • 第三,不需要在引号中加上值:
    echo“$resultItemData”
    可以是
    echo$resultItemData

  • 第四,您试图回显
    $resultItemData
    ,这是一个资源,而不是行数据。您希望回显
    $rowItemData

  • <> >最后,您可能希望结果在关联数组中,而不是数值索引数组,因此您可以考虑使用<代码> SqLSRVIF FETCHCHYARM数组($RuleTimeDATA,SqLSRvVFETCHCHAASOC)< /C> >

    。 下面是您的代码,经过修改后可以使用,并遵循一些更好的实践:

    // columns: 'Seller',Vendor, 'Date', 'Total'
    while( $rowItemData = sqlsrv_fetch_array( $resultItemData, SQLSRV_FETCH_ASSOC ) ) {
        echo "<tr><td>";
        echo "<td>$rowItemData['Seller']</td>";
        echo "<td>$rowItemData['Vendor']</td>";
        echo "<td>$rowItemData['Date']</td>";
        echo "<td>$rowItemData['Total']</td>";
        echo "</tr>";
    }
    
    //列:“卖方”、“供应商”、“日期”、“总计”
    而($rowItemData=sqlsrv_fetch_数组($resultItemData,sqlsrv_fetch_ASSOC)){
    回声“;
    echo“$rowItemData['Seller']”;
    echo“$rowItemData['Vendor']”;
    回显“$rowItemData['Date']”;
    回显“$rowItemData['Total']”;
    回声“;
    }
    
    存在一系列问题:

  • 首先,用
    {
    打开while,但用
    结束while;
    -虽然技术上没有问题,但不一致-如果用
    {
    打开,最好用
    }
    结束

  • 其次,您试图回显整个阵列,这将无法正常工作

  • 第三,不需要在引号中加上值:
    echo“$resultItemData”
    可以是
    echo$resultItemData

  • 第四,您试图回显
    $resultItemData
    ,这是一个资源,而不是行数据。您希望回显
    $rowItemData

  • <> >最后,您可能希望结果在关联数组中,而不是数值索引数组,因此您可以考虑使用<代码> SqLSRVIF FETCHCHYARM数组($RuleTimeDATA,SqLSRvVFETCHCHAASOC)< /C> >

    。 下面是您的代码,经过修改后可以使用,并遵循一些更好的实践:

    // columns: 'Seller',Vendor, 'Date', 'Total'
    while( $rowItemData = sqlsrv_fetch_array( $resultItemData, SQLSRV_FETCH_ASSOC ) ) {
        echo "<tr><td>";
        echo "<td>$rowItemData['Seller']</td>";
        echo "<td>$rowItemData['Vendor']</td>";
        echo "<td>$rowItemData['Date']</td>";
        echo "<td>$rowItemData['Total']</td>";
        echo "</tr>";
    }
    
    //列:“卖方”、“供应商”、“日期”、“总计”
    而($rowItemData=sqlsrv_fetch_数组($resultItemData,sqlsrv_fetch_ASSOC)){
    回声“;
    echo“$rowItemData['Seller']”;
    echo“$rowItemData['Vendor']”;
    回显“$rowItemData['Date']”;
    回显“$rowItemData['Total']”;
    回声“;
    }
    
    假设您的查询实际生成了一个结果,因为您没有检查它是否生成:

    $resultItemData = sqlsrv_query($con, $queryOrders);
    
    $header = <<<HEREDOC
    <table border="1" align="center">
    <tr>
      <th>Seller</th>
      <th>Vendor</th>
      <th>Date</th>
      <th>Total</th>
    </tr>
    HEREDOC;
    
    echo $header;
    
    while($rowItemData = sqlsrv_fetch_array($resultItemData)) {
        echo "<tr>
                <td>{$rowItemData['Seller']}</td>
                <td>{$rowItemData['Vendor']}</td>
                <td>{$rowItemData['Date']}</td>
                <td>{$rowItemData['Total']}</td>
              </tr>";
    }
    echo '</table>';
    

    假设您的查询实际生成了一个结果,因为您没有检查它是否生成:

    $resultItemData = sqlsrv_query($con, $queryOrders);
    
    $header = <<<HEREDOC
    <table border="1" align="center">
    <tr>
      <th>Seller</th>
      <th>Vendor</th>
      <th>Date</th>
      <th>Total</th>
    </tr>
    HEREDOC;
    
    echo $header;
    
    while($rowItemData = sqlsrv_fetch_array($resultItemData)) {
        echo "<tr>
                <td>{$rowItemData['Seller']}</td>
                <td>{$rowItemData['Vendor']}</td>
                <td>{$rowItemData['Date']}</td>
                <td>{$rowItemData['Total']}</td>
              </tr>";
    }
    echo '</table>';
    

    查看答案,他们会指出你的语法问题。也会建议,不要对每一行执行echo,这是不需要的。或者使用herdoc。查看答案,他们会指出你的语法问题。也会建议,不要对每一行执行echo,这是不需要的。或者使用herdoc。是的,但是你没有通过尝试回显查询指出问题句柄。
    echo$resultItemData;
    对我来说是可疑的。哪个结果..可捕获致命错误:类sqlsrv\u result的对象无法转换为stringYes,但您没有指出尝试回显查询句柄的问题。
    echo$resultItemData;
    对我来说是可疑的。哪个结果..可捕获致命错误