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;
对我来说是可疑的。哪个结果..可捕获致命错误