2

我在我的 Wordpress 网站上使用 NinjaForm 插件,它运行良好,但我们希望创建一个自定义 .php 页面来输出一些提交的数据。

我们当前的文件是

<?php
 $username = "SQLuser";
 $password = "SQLpass";
 $host = "localhost";
 $connector = mysql_connect($host, $username, $password)
    or die("Unable to connect");
 $selected = mysql_select_db("wordpress", $connector)
    or die("Unable to connect");
 ?>
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
    <title>Report</title>
 </head>
 <body>
    <!--right-->
    <?php
    //execute the SQL query and return records
    $result = mysql_query("SELECT * FROM wp_postmeta WHERE Meta_Key LIKE '%field%'");
    ?>
    <table>
        <thead>

        </thead>
        <tbody>
            <?php
            while ($row = mysql_fetch_assoc($result)) {
                echo
                "<tr>
          <td>{$row['post_id']}</td>
          <td>{$row['meta_key']}</td>
          <td>{$row['meta_value']}</td>
        </tr>";
            }
            ?>
        </tbody>
    </table>


 </body>
 </html>
<?php mysql_close($connector); ?>

主要是从html 页面上的 mysql/phpmyadmin 显示数据中屠宰, 但这是在一个长列表中显示数据,如此屏幕截图

我们的目标是在表格中获取这些数据,其中包含每个字段的标题

例如   

_field_5 = 姓名,  

_field_8 = 食物,  

_field_6 = 可以参加

             

 

DB 格式就像这张图片,所以数据一开始并没有保存在单独的列中,所以希望我们能够使用 php.ini 重新排列它。

有什么建议吗?

4

1 回答 1

1

因此,首先要注意与 WP 中的最佳/最安全实践相关的几件事。

  1. 不要创建“自定义”页面。创建一个自定义模板,然后将您的 php 添加到该模板中。现在在 WP 中创建一个页面,并为其分配相关的页面模板。这样您就可以正确使用 WordPress。
  2. 使用WP 函数查询数据库,而不是直接通过 PHP 查询数据库

    <?php
    
    $querystr = "SELECT * FROM wp_postmeta WHERE Meta_Key LIKE '%field%";
    
    $output = $wpdb->get_results($querystr, OBJECT);
    
    ?>
    

现在,考虑到这一点,您需要相应地构建页面。如果无法完全访问您当前的结果页面,我只能模糊地猜测如何格式化您的标记。但是,这样的事情应该让你大部分时间:

<table>
    <thead>

    </thead>
    <tbody>
        <?php
        if($output){
        foreach ($output as $row){
            echo
            "<tr>
      <td>{$row['post_id']}</td>
      <td>{$row['meta_key']}</td>
      <td>{$row['meta_value']}</td>
    </tr>";
         }
        }
        ?>
    </tbody>
</table>
于 2017-04-27T13:44:02.147 回答