php数据显示在表格中

时间:2018-05-12 20:35:44

标签: php sql

大家晚上,

我需要一些帮助。

我有一些非常基本的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

3 个答案:

答案 0 :(得分:2)

每当您为o分配新值时,旧字符串正在替换。要解决这个问题,只需使用

$o=$o . “New string”

。将旧字符串与新字符串组合在一起。

答案 1 :(得分:1)

你没有连接你的$ o html代码,使用$o .=(注意用于连接html代码的。(点)),而不是$o =(每次都会覆盖你的变量) )

答案 2 :(得分:0)

您似乎想要构建HTML并输出它。正如其他人所指出的那样,你不是在建造它,而是在取代以前的砖头#34;在$o变量的每个赋值上都有一个新的。您可以使用建议的修复程序,这实际上允许您在变量中构建HTML,但我只是建议完全抛弃变量,而是使用echo来输出HTML飞。

PS:我建议通过调用$Description来包装$outcomeshtmlspecialchars变量,这样当数据库中的数据包含时,您的HTML仍可正常工作搞乱它的东西,(例如一个字符串&#34; 0 < a&#34;)。否则你会在那里得到一个XSS漏洞(除非你确保对数据进行清理,当它进入数据库时​​,但我仍然编码这些值,相当安全,而不是抱歉,当某些东西意味着滑过你的消毒)。