【问题标题】:convert php sql Result from Vertical to Horizontal将php sql结果从垂直转换为水平
【发布时间】:2014-05-30 23:25:29
【问题描述】:

以下代码在垂直表中生成结果(一条记录)是否有任何方法可以转换为具有漂亮样式的水平表。此外,如果可能的话,可以使用查询中的参数在弹出窗口中获取某些列, 使用 jquery 或 CSS

<html>
 <head>
  <link rel="stylesheet" href="style.css" type="text/css" />
 </head>
 <body>

<?

$table = $_GET["table"];
$lon = $_GET["lon"];
$lat = $_GET["lat"];

$sql = "select
          st_geometrytype(geom) as geometrytype,
          st_area(geom) as area, *
        from $table
        where
          st_contains(
            geom,
            st_transform(
              st_setsrid(
                st_makepoint($lon, $lat),
                4326),
              2276))";

$db = pg_connect("dbname=db user=user password=pass");
$result = pg_query($db, $sql);
while( $row = pg_fetch_assoc($result) )
{
  print "<table>";
  foreach ( array_keys($row) as $column_name )
  {
    if ( $column_name <> "geom" )
    {
      print "<tr>";
      print "<th>" . $column_name . "</th>";
      print "<td>" . $row[$column_name] . "</td>";
      print "</tr>";
    }
  }
  print "</table>";
}

?>

</body>
</html>

到目前为止,我正在使用这个 CSS 来设置我的表格样式。

th
{
  text-align:right;
  padding-right:0.5em;
}

td
{
  text-align:center;
}

非常感谢..

【问题讨论】:

    标签: php html css sql


    【解决方案1】:

    水平显示 8 个元素的代码。

       <table>
       <?if($c==8){echo "<tr >";$c=0;  }<td> ?>
       // your elements 
       <? echo "</td>";
       $c++;?>
       </tr>
      </table>
    

    【讨论】:

      【解决方案2】:

      您在循环运行的同时打印tr,因此它将使trs 并且显然它将是垂直的,要使其水平,您的循环将是这样的;

      while( $row = pg_fetch_assoc($result) )
      {
        print "<table>";
        print "<tr>";
        foreach ( array_keys($row) as $column )
        {
          if ( $column_name <> "geom" )
          {
      
      
            print "<th>" . $column . "</th>";
      
          }
        }
      
        print "</tr>";
        print "<tr>";  <-- this one here opening tag
        foreach ( array_keys($row) as $column_name )
        {
          if ( $column_name <> "geom" )
          {
      
      
            print "<td>" . $row[$column_name] . "</td>";
      
          }
        }
        print "</tr>"; <-- this one here closing tag
        print "</table>";
      }
      

      【讨论】:

      • 嗨,谢谢您的帮助,现在我将所有结果放在一行(标题)中,我需要数据的列标题和行。
      • print "&lt;table&gt;"; 下添加print &lt;tr&gt;&lt;th&gt;Column Name 1&lt;/th&gt;&lt;th&gt;Column Name 2&lt;/th&gt;&lt;/tr&gt; 然后您的循环将在此下进行。如果你想要左边的行名,只需交换 tr's、td's 和 th's。
      • 是否有另一种方式我有很多列 52,我的问题的第二部分呢,我非常感谢您的帮助。非常感谢
      • 我会针对弹出窗口提出另一个问题。这是一个完全不同的问题。但在你打开另一个问题之前:试着自己弄清楚,因为上述问题过于宽泛,并没有说明具体问题。
      • 是的,效果很好,谢谢,第二个问题是如何显示特定的列,例如。所有者 noBeds 在弹出窗口中。使用同一张桌子。问候
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 2018-12-31
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      相关资源
      最近更新 更多