我在我的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); ?>
主要是从Display data from mysql/phpmyadmin on html page屠杀,但这会在一个长列表中显示数据,例如screenshot
我们的目标是将这些数据放在一个表格中,其中包含每个字段的标题
e.g。
_field_5 =姓名,
_field_8 =食物,
_field_6 =可以参加
数据库格式与此image类似,因此数据首先不会保存在单独的列中,因此希望我们能够使用php重新排列。
有什么建议吗?
答案 0 :(得分:1)
因此,首先要注意与WP中最佳/最安全的做法有关的一些事项。
使用WP functions for querying the database而不是直接通过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>