【问题标题】:how to write this query in joomla如何在 joomla 中编写此查询
【发布时间】:2015-02-17 09:29:45
【问题描述】:

我想获取子类别的所有父类别标题 所以在mysql中我可以用这段代码做到这一点

SELECT T2.id, T2.title
FROM (
    SELECT
        @r AS _id,
        (SELECT @r := parent_id FROM `up8te_categories` WHERE id = _id) AS parent_id,
        @l := @l + 1 AS lvl
    FROM
        (SELECT @r := 8, @l := 0) vars,
        `up8te_categories` h
    WHERE @r <> 0) T1
JOIN `up8te_categories` T2
ON T1._id = T2.id
ORDER BY T1.lvl DESC

但是在 joomla 我们有查询的 API 我想知道如何在 joomla 中使用它?

我知道是这样的:

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select($db->quoteName(array('title')))
      ->from(......??????......)
      ->join('INNER', $db->quoteName('#__categories', 'T2') . ' ON (T1._id  =  T2.id)')
      ->order('T1.lvl DESC');
$db->setQuery($query);
$rows = $db->loadObjectList();

但我不知道如何从我想再次选择时开始设置..

我能做什么?

亲切的问候。

【问题讨论】:

    标签: php mysql joomla


    【解决方案1】:

    我更喜欢将用户 $query 作为字符串,像这样:

        $db = JFactory::getDbo();        
        $query = 'SELECT T2.id, T2.title
                 FROM (
                     SELECT
                         @r AS _id,
                         (SELECT @r := parent_id FROM #__categories WHERE id = _id) AS parent_id,
                         @l := @l + 1 AS lvl
                     FROM
                         (SELECT @r := 8, @l := 0) vars,
                         #__categories h
                     WHERE @r <> 0) T1
                 JOIN #__categories T2
                 ON T1._id = T2.id
                 ORDER BY T1.lvl DESC';
    
        $db->setQuery($query);
    

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多