Я использую плагин NinjaForm на своем сайте WordPress, который работает хорошо, но мы стремимся создать пользовательскую страницу .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); ?>
В основном убит из Вывести данные из mysql / phpmyadmin на HTML-страницу но это отображает данные в одном длинном списке, как это Скриншот
Наша цель — собрать эти данные в таблицу с заголовками для каждого поля.
например
_field_5 = Имя,
_field_8 = Еда,
_field_6 = Может присутствовать
Формат БД такой образ, поэтому данные не хранятся в отдельных столбцах, поэтому мы надеемся, что мы сможем изменить это с помощью php.
Любой совет?
Итак, сначала пара вещей, которые нужно отметить, относящихся к лучшей / самой безопасной практике в WP.
Использовать 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>
Других решений пока нет …