大家晚上,
我需要一些帮助。
我有一些非常基本的PHP编码,它从MS SQL数据库中的表中获取数据并且已经解开了。
我试图让数据显示在一个表格中,不管我做了什么,它只是赢了,数据被打乱在页面上乱七八糟地没有表格标题全部(好像浏览器没有注册表格代码)。
<?php
$databs ='C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\MRT.mdf';
$dbConnect = odbc_connect("MRTServ","","")
or die("Error opening database .... use the browsers BACK button");
if ($dbConnect)
$dbQuery = "SELECT * FROM Callouts";
$dbResult = odbc_exec($dbConnect,$dbQuery);
while (odbc_fetch_row($dbResult)) {
$Description = odbc_result($dbResult,3); //third column
$outcomes = odbc_result($dbResult,5); //fifth column
//or could retreive data by specifying the column field names
//specified in query
//$Description = odbc_result($dbResult, "Description");
//$outcomes = odbc_result($dbResult, "outcomes");
echo "<br />";
echo "$Description, $outcomes";
}
$o = '<div id=ATtable>
<table-id-"table1">
<thead>
<tr>
<th>Description</th>
<th>Outcomes</th>
</tr>
</thead>
<tbody>';
while ( $record = odbc_fetch_array($dbResult) )
{
$o='<tr><td>'.[$Description].'</td><td>'.[$outcomes].'</td></tr>';
}
$o='</tbody>
</table>
</div>';
echo $o;
odbc_close($dbConnect);
&GT;
这是我提出的PHP代码,但是对于我的生活,我看不出我犯了错误或遗漏了什么。
请有人能给我一个正确方向的推动吗?
谢谢,Dan
答案 0 :(得分:2)
每当您为o分配新值时,旧字符串正在替换。要解决这个问题,只需使用
$o=$o . “New string”
。将旧字符串与新字符串组合在一起。
答案 1 :(得分:1)
你没有连接你的$ o html代码,使用$o .=
(注意用于连接html代码的。(点)),而不是$o =
(每次都会覆盖你的变量) )
答案 2 :(得分:0)
您似乎想要构建HTML并输出它。正如其他人所指出的那样,你不是在建造它,而是在取代以前的砖头#34;在$o
变量的每个赋值上都有一个新的。您可以使用建议的修复程序,这实际上允许您在变量中构建HTML,但我只是建议完全抛弃变量,而是使用echo
来输出HTML飞。
PS:我建议通过调用$Description
来包装$outcomes
和htmlspecialchars
变量,这样当数据库中的数据包含时,您的HTML仍可正常工作搞乱它的东西,(例如一个字符串&#34; 0 < a
&#34;)。否则你会在那里得到一个XSS漏洞(除非你确保对数据进行清理,当它进入数据库时,但我仍然编码这些值,相当安全,而不是抱歉,当某些东西意味着滑过你的消毒)。