du31992 2018-07-23 16:02 采纳率: 0%
浏览 53
已采纳

MS SQL和PHP从数据库返回表,但它返回随机字母

I have been trying to show tables from my MS SQL into my browser using the following php code but it is returning table with random letters please see screenshots and code below

this is the code I am using

     <?php

/* ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL); */





function databaseOutput()

 {
  $serverName = "*************"; //serverName\instanceName
$connectionInfo = array( "*******"=>"********", "UID"=>"******", "PWD"=>"*******!");
$db = sqlsrv_connect( $serverName, $connectionInfo);


  $dbQuery = sqlsrv_query($db, "select * from vw_Impact_Return2 ");
  $rows = sqlsrv_fetch_array($dbQuery);

    //print('<pre>');
    //print_r($rows); 
    //print('<pre>');
    //exit;

  foreach($rows as $dbRow) {
?>
    <tr>
      <td><?php echo $dbRow['Schema_ID']; ?></td>
      <td><?php echo $dbRow['Stakeholder_ID']; ?></td>
      <td><?php echo $dbRow['Intended_Changes']; ?></td>
      <td><?php echo $dbRow['Investment_Type_ID']; ?></td>
      <td><?php echo $dbRow['Value_of_Investment']; ?></td>
      <td><?php echo $dbRow['Summary']; ?></td>
      <td><?php echo $dbRow['Outcomes_Description']; ?></td>
      <td><?php echo $dbRow['Outcomes_Indicator']; ?></td>
      <td><?php echo $dbRow['Outcomes_Source']; ?></td>
       <td><?php echo $dbRow['Outcomes_Quantity']; ?></td>
      <td><?php echo $dbRow['Outcomes_Duration']; ?></td>
      <td><?php echo $dbRow['Outcomes_Start']; ?></td>
       <td><?php echo $dbRow['Outcomes_Financial_Proxy']; ?></td>
      <td><?php echo $dbRow['Outcomes_Value_of_Proxy']; ?></td>
       <td><?php echo $dbRow['Deadweight']; ?></td>
      <td><?php echo $dbRow['Displacement']; ?></td>
      <td><?php echo $dbRow['Attribution']; ?></td>
      <td><?php echo $dbRow['Drop_Off']; ?></td>
      <td><?php echo $dbRow['Impact']; ?></td>
       <td><?php echo $dbRow['Return_Year0']; ?></td>
      <td><?php echo $dbRow['Return_Year1']; ?></td>
      <td><?php echo $dbRow['Return_Year2']; ?></td>
          <td><?php echo $dbRow['Return_Year3']; ?></td>
      <td><?php echo $dbRow['Return_Year4']; ?></td>
       <td><?php echo $dbRow['Return_Year5']; ?></td>

    </tr>
<?php

  }

} // end of function databaseOutput()

if (isset($_POST['submit_docs'])) { // word output

  header("Content-Type:application/msword");
  header("Expires: 0");
  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  header("content-disposition: attachment;filename=test.docx");

?>
<html>
  <body>
    <h1> Social Return</h1>
    <table>
      <tr>
        <th>Schema_ID</th><th>Stakeholder_ID</th><th>Intended_Changes</th><th>Investment_Type_ID</th><th>Value_of_Investment</th><th>Summary</th><th>Outcomes_Description</th><th>Outcomes_Indicator</th><th>Outcomes_Source</th><th>Outcomes_Quantity</th><th>Outcomes_Duration</th>
        <th>Outcomes_Start</th><th>Outcomes_Financial_Proxy</th><th>Outcomes_Value_of_Proxy</th><th>Deadweight</th><th>Displacement</th><th>Attribution</th><th>Drop_Off</th><th>Impact</th>
        <th>Return_Year0</th><th>Return_Year1</th><th>Return_Year2</th><th>Return_Year3</th><th>Return_Year4</th><th>Return_Year5</th>
      </tr>
      <?php databaseOutput(); ?>
    </table>
  </body>
</html>
<?php

  exit; // end of word output

}
?>
<html>
  <head>
    <title>Social Return</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet"   href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://dunluce.infc.ulst.ac.uk/cw11ba/project/Project/mycss.css">
  </head>
  <body>
    <form name="export_form" action="<?php echo($_SERVER['PHP_SELF']);?>" method="post">
      <input type="submit" name="submit_docs" value="Export as MS Word" class="input-button" /> <a href="https://dunluce.infc.ulst.ac.uk/cw11ba/project/Project/admin.php"><button type="button" class= "btn btn-block">Go back to Admin Area</button></a>
    </form>
    <table class="table table-striped" id="student">
      <tr>
        <th>Schema_ID</th><th>Stakeholder_ID</th><th>Intended_Changes</th><th>Investment_Type_ID</th><th>Value_of_Investment</th><th>Summary</th><th>Outcomes_Description</th><th>Outcomes_Indicator</th><th>Outcomes_Source</th><th>Outcomes_Quantity</th><th>Outcomes_Duration</th>
        <th>Outcomes_Start</th><th>Outcomes_Financial_Proxy</th><th>Outcomes_Value_of_Proxy</th><th>Deadweight</th><th>Displacement</th><th>Attribution</th><th>Drop_Off</th><th>Impact</th>
        <th>Return_Year0</th><th>Return_Year1</th><th>Return_Year2</th><th>Return_Year3</th><th>Return_Year4</th><th>Return_Year5</th>
          </tr>
      <?php databaseOutput(); ?>
    </table>
  </body>
</html>

Database table looks like this

Code returning this

Please please help me, I have tried everything and I can only connect to my database via sqlsrv_connect

  • 写回答

1条回答 默认 最新

  • dongmi4035 2018-07-23 16:07
    关注

    sqlsrv_fetch_array returns a single row as an array, so in your foreach you're not looping through what you think you are. Try doing a while loop instead:

      while($dbRow = sqlsrv_fetch_array($dbQuery, SQLSRV_FETCH_ASSOC)) {
    ?>
        <tr>
          <td><?php echo $dbRow['Schema_ID']; ?></td>
          <td><?php echo $dbRow['Stakeholder_ID']; ?></td>
          <td><?php echo $dbRow['Intended_Changes']; ?></td>
          <td><?php echo $dbRow['Investment_Type_ID']; ?></td>
          <td><?php echo $dbRow['Value_of_Investment']; ?></td>
          <td><?php echo $dbRow['Summary']; ?></td>
          <td><?php echo $dbRow['Outcomes_Description']; ?></td>
          <td><?php echo $dbRow['Outcomes_Indicator']; ?></td>
          <td><?php echo $dbRow['Outcomes_Source']; ?></td>
           <td><?php echo $dbRow['Outcomes_Quantity']; ?></td>
          <td><?php echo $dbRow['Outcomes_Duration']; ?></td>
          <td><?php echo $dbRow['Outcomes_Start']; ?></td>
           <td><?php echo $dbRow['Outcomes_Financial_Proxy']; ?></td>
          <td><?php echo $dbRow['Outcomes_Value_of_Proxy']; ?></td>
           <td><?php echo $dbRow['Deadweight']; ?></td>
          <td><?php echo $dbRow['Displacement']; ?></td>
          <td><?php echo $dbRow['Attribution']; ?></td>
          <td><?php echo $dbRow['Drop_Off']; ?></td>
          <td><?php echo $dbRow['Impact']; ?></td>
           <td><?php echo $dbRow['Return_Year0']; ?></td>
          <td><?php echo $dbRow['Return_Year1']; ?></td>
          <td><?php echo $dbRow['Return_Year2']; ?></td>
              <td><?php echo $dbRow['Return_Year3']; ?></td>
          <td><?php echo $dbRow['Return_Year4']; ?></td>
           <td><?php echo $dbRow['Return_Year5']; ?></td>
    
        </tr>
    <?php
    
      }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog