我正在尝试完成以下操作以在 WordPress 数据库上运行查询:
我已经显示了孩子们,但在将孙子们添加到数组中时遇到了困难。这是代码:
$id = $_REQUEST['selected'];
$a = implode(',', array_map('intval', $id));
$hostname = 'localhost';
$username = 'victoria_wp_site';
$password = 'PASSWORD';
$db = new PDO("mysql:dbname=victoria_wp_site;host=$hostname", $username, $password);
$qry = $db->prepare("SELECT id,post_title
FROM `wp_posts`
WHERE `post_parent` IN ($a) and post_name not like '%revision%' ");
$qry->execute();
$i = 0;
while ($data = $qry->fetch()) {
$result[$i] = $data;
$i++;
}
$b = implode(',', array_column($result, 'id'));
$qry_grandchild = $db->prepare("SELECT id, post_title
FROM `wp_posts`
WHERE `post_parent` IN ($b) AND post_name not like '%revision%' ");
$qry_grandchild->execute();
while ($data = $qry_grandchild->fetch()) {
$result[$i] = $data;
$i++;
}
echo json_encode($result);
不知道我做错了什么。
问题在于用于选择孙子的数组的格式。我通过在使用数组选择孙子之前将 implode 函数添加到数组中解决了这个问题。
$b = implode(',', array_column($result, 'id'));
$qry_grandchild = $db->prepare("SELECT id, post_title
FROM `wp_posts`
WHERE `post_parent` IN ($b) AND post_name not like '%revision%' ");
$qry_grandchild->execute();