使用相同的短代码显示数据库中的任何表

时间:2014-02-20 15:56:57

标签: php wordpress shortcode wpdb

我有一个小问题。

我想创建一个短代码,该代码生成一个包含我存储在数据库中的数据的表。但我想发送短代码一个属性,以指定我想要显示的表(数据库)。

add_shortcode("list", "list");

function list($tbl) {
    extract(shortcode_atts(array('item' => '')), $tbl);
    if($item!="") {
        $mydb= new wpdb('root','root','mydb','localhost');
        $rows = $mydb->get_results("select * from ".$item);
        echo "<table>";
        foreach ($rows as $obj) {
            echo "<tr>";
            //Here I want to put the content of the row
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<h2>blank</h2>";
    }
}

短代码将是这样的:

[list item="table1"]

如何使用相同的短代码显示数据库的任何表?如何管理每一行以显示它已获得的所有字段?因为我有不同的列数和不同的列名称,我想在表格中显示每个单元格。

谢谢!

1 个答案:

答案 0 :(得分:0)

刚刚解决了!

function list($tbl) {
    extract(shortcode_atts(array('item' => '')), $tbl);
    if($tbl["item"]!="") {
        $mydb= new wpdb('root','root','mydb','localhost');
        $rows = $mydb->get_results("select * from ".$tbl["item"].";",ARRAY_N);
        echo "<table>";
        for($i=0;$i<count($rows);$i++) {
            echo "<tr>";
            for($j=0;$j<count($rows[$i]);$j++) {
                echo "<td>".$rows[$i][$j]."</td>";
            }           
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<h2>blank attr</h2>";
    }
}

如果有人有更好的答案,请分享!

:d