简体   繁体   English

从查询返回对象数组

[英]Return array of objects from query

I currently have the following my_sql logic: 我目前有以下my_sql逻辑:

$results = $wpdb->get_results('
                        SELECT
                            catname as subcatname,categoryid, 
                            (SELECT 
                                catname 
                            FROM 
                                isc_categories 
                            WHERE 
                                categoryid= '.(int)$id.') as catname
                        FROM
                            isc_categories
                        WHERE
                            catparentid = '.(int)$id.'
                        AND  
                            catvisible=1
                        ORDER BY
                            subcatname' );

$rs = mysql_query($query);

while ($row = mysql_fetch_object($rs)) {

var_dump($row);

}

This returns an array like so: 这将返回一个数组,如下所示:

array(1) {
  [0]=>
  object(stdClass)#16 (3) {
    ["subcatname"]=>
    string(29) "Category Name: D.C Ice Makers"
    ["categoryid"]=>
    string(4) "1113"
    ["catname"]=>
    NULL
  }
}
array(1) {
  [0]=>
  object(stdClass)#17 (3) {
    ["subcatname"]=>
    string(33) "Category Name: Parry Boiling Tops"
    ["categoryid"]=>
    string(4) "1114"
    ["catname"]=>
    NULL
  }

} }

However, I'd like to return my results in this format: 但是,我想以以下格式返回结果:

 array(18) {
      [0]=>
      object(stdClass)#258 (3) {
        ["subcatname"]=>
        string(22) "Air Recirculation Unit"
        ["categoryid"]=>
        string(4) "1107"
        ["catname"]=>
        string(18) "Catering Equipment"
      }
      [1]=>
      object(stdClass)#257 (3) {
        ["subcatname"]=>
        string(17) "Beverage Machines"
        ["categoryid"]=>
        string(3) "108"
        ["catname"]=>
        string(18) "Catering Equipment"
      }
    }

I've tried experimenting with the "mysql_fetch_object", but I'm struggling to return the results in the format I need. 我已经尝试过使用“ mysql_fetch_object”进行试验,但是我正努力以所需的格式返回结果。 Thanks 谢谢

The query is wrong. 查询错误。 Try it like this: 试试这样:

SELECT c.catname as subcatname,
       c.categoryid,
       cc.catname
FROM isc_categories c
JOIN isc_categories cc
  ON cc.categoryid = c.catparentid
WHERE c.catparentid = ' . $id . '
  AND c.catvisible = 1
ORDER BY c.catname

Use LEFT JOIN if you use the same query to get only the top parent categories (when $id is 0). 如果您使用相同的查询仅获取顶级父类别(当$id为0时),请使用LEFT JOIN

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM