用参数的joomla mysql查询

时间:2014-05-22 10:15:07

标签: php mysql joomla joomla2.5

我想绑定内容项表的id并链接菜单表。我需要按如下方式构建查询:

protected function getListQuery() 
{

    $url="index.php?option=com_content&view=article&id=";
    // Create a new query object.
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);

    // select the items
    $query->select('ar.id,ar.alias,ar.introtext,ar.images,ar.created,m.link,m.path');

    // of content table and menu table
    $query->from('#__content as ar, #__menu as m');
    $query->where('m.link like '+$url+'ar.id');

    $query->order('ar.id desc');
    return $query;
}

查询返回0结果。我需要附加$url参数和ar.id以生成找到完整网址。

我希望您向我展示表格中的菜单项列表是否与参数相关联。 例如:

index.php?option=com_content&view=article&id=70

谢谢!

2 个答案:

答案 0 :(得分:1)

使用Concat尝试

     $query->where("m.link like CONCAT('%','$url',ar.id,'%') ");

答案 1 :(得分:0)

我是Joomla的新手,所以我只对3.8.6版本的Joomla很熟悉。

您的查询可能会受益于一些定位良好的引用方法。

(为清楚起见,使用逗号语法的JOIN是JOINs a.k.a. INNER JOINS。)

如果您的实际列数据由附加$url的{​​{1}}完全表示,那么您不需要ar.id字符串比较功能(因为您没有使用特殊字符: LIKE_)。

  • %q()的缩写 - 用于字符串值
  • quote()qn()的缩写 - 用于列/表名称

建议/未经测试的代码:

quoteName()