使用 mysql_query WordPress 将子项和孙项添加到数组中

问题描述 投票:0回答:1

我正在尝试完成以下操作以在 WordPress 数据库上运行查询:

  1. 使用 mysql PDO 准备函数检索所选父母的子帖子
  2. 使用另一个 PDO 准备函数来检索孙子帖子
  3. 将所有这些合并到一个数组中(相同的键)

我已经显示了孩子们,但在将孙子们添加到数组中时遇到了困难。这是代码:

$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);

不知道我做错了什么。

php mysql json wordpress children
1个回答
0
投票

问题在于用于选择孙子的数组的格式。我通过在使用数组选择孙子之前将 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();   
© www.soinside.com 2019 - 2024. All rights reserved.