将数据从SQL Server数据库导入HTML表

时间:2016-09-27 15:21:59

标签: php sql-server loops html-table

我的数据库表中有很多行,所以我无法对任何内容进行硬编码。我假设我需要某种循环来遍历数据库中的行,然后将其显示在我的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>

2 个答案:

答案 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)