Сервер SQL — MS SQL & PHP возвращает таблицу из базы данных, но возвращает случайные буквы

Я пытался показать таблицы из моего MS SQL в моем браузере, используя следующий код php, но он возвращает таблицу со случайными буквами, см. Скриншоты и код ниже

это код, который я использую

     <?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>

Таблица базы данных выглядит следующим образом

Код, возвращающий это

Пожалуйста, помогите мне, я перепробовал все, и я могу подключиться к своей базе данных только через sqlsrv_connect

0

Решение

sqlsrv_fetch_array возвращает одну строку в виде массива, так что в вашем foreach вы не просматриваете то, что вы думаете. Попробуйте вместо этого сделать цикл while:

  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

}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]