我的数据库表中有很多行,所以我无法对任何内容进行硬编码。我假设我需要某种循环来遍历数据库中的行,然后将其显示在我的HTML表中。到目前为止,这是我的代码......你能告诉我我需要做什么吗?
<html>
<head>
<title>Stage Rebate Master HTML Table</title>
</head>
<body>
<?php
$host="xxxxx";
$dbName="xxxxx";
$dbUser="xxxx";
$dbPass="xxxxxxxxx";
$dbh = new PDO( "sqlsrv:server=".$host."; Database=".$dbName, $dbUser, $dbPass); var_dump($dbh);
if (!$dbh) {
die("Connection failed: " . sqlsrv_connect_error());
}
echo "Connected successfully";
$results = sqlsrv_query("SELECT * FROM Stage_Rebate_Master ORDER BY MR_ID ASC");
$id = 'MR_ID';
$name = 'MR_Name';
$buyer = 'Buyer_ID';
$poc_name = 'MR_POC_N';
$poc_email = 'MR_POC_E';
$poc_tel = 'MR_POC_P';
?>
<table>
<thead>
<tr>
<td>MR_ID</td>
<td>MR_Name</td>
<td>Buyer_ID</td>
<td>MR_POC_N</td>
<td>MR_POC_E</td>
<td>MR_POC_P</td>
</tr>
</thead>
<tbody>
<?php
while($rows = sqlsrv_fetch_array($results)) {
?>
<tr>
<td><?php echo $rows['MR_ID']?></td>
<td><?php echo $rows['MR_Name']?></td>
<td><?php echo $rows['Buyer_ID']?></td>
<td><?php echo $rows['MR_POC_N']?></td>
<td><?php echo $rows['MR_POC_E']?></td>
<td><?php echo $rows['MR_POC_P']?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
答案 0 :(得分:1)
您可以尝试以下代码:
<?php
$host="xxxxxxxx";
$dbName="xxxxxxx";
$dbUser="xxxxx";
$dbPass="xxxxxxxxx";
$dbh = new PDO( "sqlsrv:server=".$host."; Database=".$dbName, $dbUser, $dbPass);
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM Stage_Rebate_Master ORDER BY MR_ID ASC";
?>
<table>
<thead>
<tr>
<td>MR_ID</td>
<td>MR_Name</td>
<td>Buyer_ID</td>
<td>MR_POC_N</td>
<td>MR_POC_E</td>
<td>MR_POC_P</td>
</tr>
</thead>
<tbody>
<?php
foreach ($dbh->query($sql) as $rows){
?>
<tr>
<td><?php echo intval($rows['MR_ID'])?></td>
<td><?php echo $rows['MR_Name']?></td>
<td><?php echo $rows['Buyer_ID']?></td>
<td><?php echo $rows['MR_POC_N']?></td>
<td><?php echo $rows['MR_POC_E']?></td>
<td><?php echo $rows['MR_POC_P']?></td>
</tr>
<?php
}
?>
</tbody>
</table>
答案 1 :(得分:0)
你说正确的循环是正确的。
使用以下内容替换while循环:
while ($rows = $results->fetch_assoc()){
我个人还会添加一些逻辑来检查是否有任何数据被返回,如果没有则显示消息。
即。
if($results->num_rows > 0)