用php从sql表中提取列

时间:2017-09-14 15:11:52

标签: php mysql sql wordpress

我的查询选择了我的表中的所有列

$spool = $wpdb->get_results('SELECT * FROM `tablename`');

然后我在表格中显示结果。我需要显示所有列。这就是我这样做的方式。

echo "<table>";
  if ( !empty( $spool ) ) {
      echo  "<tr><th> header </th></tr>";
             foreach ( $spool as $a ) {
                    echo "<tr><th>" . $a->columnname1 . "</th><th>" .$a->columnnameN . "</th></tr>";
                }   

    }
echo "</table>";

既然我有大约40个专栏,我想问一下是否有一种更聪明,更乏味的显示方式。

2 个答案:

答案 0 :(得分:1)

可能你需要嵌套循环,你得到的结果可能是这样的

array(
    0:{column1:test,column2:test . . . },
    1:{column1:test,column2:test . . . }
)

所以你可以尝试这种方式

    echo "<table>";
    if ( !empty( $spool ) ) {
      echo  "<tr><th> header </th></tr>";
        foreach ( $spool as $key => $value  ) {
           echo '<tr>';
             foreach ( $value as $a ) {
                      echo "<th>" . $a. "</th>";
                 }   
            echo '</tr>';
          }
      }
      echo "</table>";

答案 1 :(得分:1)

由于你有对象,你可以将它们转换为数组并使用implode。 (但属性顺序可能与您想要的不同。)

<?php
class A
{   
    public $foo = 'bing'; 
    public $bar = 'bang';
    public $baz = 'bong';    
}
$spool = [new A, new A];

echo '<table>';
foreach($spool as $a) {
    echo '<tr>';
    echo '<td>' . implode('</td><td>', (array) $a) . '</td>';
    echo '</tr>';
}
echo '</table>';

输出:

<table><tr><td>bing</td><td>bang</td><td>bong</td></tr><tr><td>bing</td><td>bang</td><td>bong</td></tr></table>