1

我搞乱了 wordpress 为我的 jquery 用来填充表的插件创建一个 API。需要帮助弄清楚我将如何做到这一点。

第一个查询,这将获得“父”帖子:

[q1]: Select * from posts as p where p.ID IN ({SomeIDs I am requesting})

第二个查询,这将得到第一个的所有孩子:

[q2]: Select * from posts as p where p.parent_postID IN ({the parentIDs from q1})

我怎样才能运行这个查询,以便结果是一个输出。我不想每次要显示孩子时都必须继续运行第二个查询(孩子显示为默认值,我的想法是我可以限制第一个查询)。

最终结果:

_________________________________________________
| 身份证 | 后父 | 标题 | 中断|
-------------------------------------------------
| 第894章 0 | 主标题 | 主盘|
| 898 | 第894章 差异标题 | 差异盘|
| 907 | 第894章 差异倾斜 | 差异盘|
| 910 | 0 | 主标题 | 主盘|
| 916 | 910 | 差异标题 | 差异盘|
| 919 | 0 | 主标题 | 主盘 |
-------------------------------------------------

你会注意到 ID 919 没有孩子,我仍然希望它显示在结果中。

所以我尝试加入,我会丢失没有 ID = post_parentID 的记录,除非我可以做另一种类型的加入......

这个想法是 q1 上的“LIMIT”,组合结果按 q2 排序,然后制作表格时 jQuerys forloop 的结果只会更改<TR>如果 ID 和 post_parent 匹配的 bg

这是我必须使用的方案... Wordpress 的;也不是说在 q2 中会有关于我想展示哪些孩子的额外标准。例子。我将为孩子们添加一个 post_meta.... meta_key = 'lang_i18N' meta_value='en' 所以我可以在 q2 中为 postmeta 添加一个连接

更新:

这是第一季度:

[q1]

    选择
        posts.ID 作为 myItem_ID,
        posts.post_parent AS parentID,
        posts.post_title AS 标题,
        posts.post_content AS fullDesc,
        posts.post_excerpt AS shortDesc,
        posts.post_status AS 状态,
        posts.menu_order AS fetured_Order,
        json_meta.meta_value 作为 json_input,
        meta.meta_value AS vendorID,
        vendor.post_title AS vendorName,
        posts.post_modified AS 修改日期
    FROM wp_posts AS 帖子
    左连接 wp_postmeta 作为元
        ON meta.post_id = posts.ID
    左连接 wp_postmeta 作为 json_meta
        ON json_meta.post_id = posts.ID
    左加入 wp_postmeta 作为 i18N
        ON i18N.post_id = posts.ID
    左加入 wp_posts 作为供应商
        ON vendor.ID = meta.meta_value
    WHERE meta.meta_key = 'agency'
    AND json_meta.meta_key = 'json_input'
    AND posts.post_type = 'activity_item'
    AND posts.post_status = '发布'
    AND post.ID IN (1080, 1231, 1273, 1882, 1937)
    限制 0,2

好的,这给了我父列表...现在我想包括与 q1 相同的孩子,但也许我想要的i18N = 'es'意思是我想要父母是 i18N 具有的任何值字段,但我想要孩子是 'es'也许有 4 个孩子,我希望 LIMIT 只显示 2 个父母,不管他们有多少孩子(不限制孩子),这可以在一个查询中完成吗?我试图远离 PHP 只是因为它有很多数据。

4

2 回答 2

1

如果你想在 php 中使用递归函数来获取父行的所有嵌套子行,那么可以使用下面的:-

function get_categories_subcategories($id)
{
    $condition = isset($id)?"post_parent=".$id."":"post_parent=0";
    $sql="select id,post_parent,title,disruption from posts where ".$condition."";    

    $query=mysql_query($sql);

    $arr = array();

    if(mysql_num_rows($query))
    { 
        while($result=mysql_fetch_array($query))
        {   
         $arr[] = array(
         "id" => $result["id"],
         "post_parent" => $result["post_parent"],
         "title" => $result["title"],
         "disruption" => $result["disruption"],
         "child" => get_categories_subcategories($result["id"])
      );     
        }        
    }
    return $arr; 
}
于 2012-06-18T11:09:42.540 回答
0

Try this ::

Select 
id,
if_null(post_parent_id,0)

from posts as p 

left join 

(Select parent_id from posts where id= ?/*input*/) as parent_temp_table

on (parent_temp_table.parent_id = p.postID)
于 2012-06-18T10:56:34.060 回答