从具有不同名称和字段名称的多个表中选择数据

时间:2016-03-08 09:25:35

标签: php mysql database joomla

在CMS Joomla中,我需要从表#__adsmanager_ads,列ad_healine和表#__modules,列title中选择数据。

然后我需要检查if ad_headline == title加载模块(等于ad_healine)。

我将此代码用于单个表选择:

<?php
// Get a db connection.
$db = JFactory::getDbo();
 // Create a new query object.
$query = $db->getQuery(true);
$query
    ->select($db->quoteName(array('ad_headline')))
    ->from($db->quoteName('#__adsmanager_ads'));

$db->setQuery($query);
$results = $db->loadObjectList();
$objectoarr = json_decode(json_encode($results),true); // Convert stdClass object to array
print_r($objectoarr);     
?>

=============================================== ========================== 接下来我写下面的代码,问题几乎是求解器

<?php
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query 
    ->select (array('a.ad_headline', 'b.title')) //Select columns from database
    ->from ($db->quoteName('#__adsmanager_ads','a'))
    ->join('LEFT', $db->quoteName('#__modules', 'b') . ' ON (' . $db->quoteName('a.ad_headline') . '=' . $db->quoteName('b.title').')');
$db->setQuery($query);
$result = $db->loadObjectList();
$objectoarr = json_decode(json_encode($result),true); // Convert stdClass object to array

foreach ($objectoarr as $adhealine){
        if ($adhealine[ad_headline] === $adhealine[title])
        {
            $document = &JFactory::getDocument();
            $renderer   = $document->loadRenderer('modules');
            $position   = 'inside-ad';
            $options   = array('style' => 'raw');
            echo $renderer->render($position, $options, null); 
        }
}
?>

但问题是所有模块都设置为inside-ad加载位置。但是我只需加载模块,其名称相当于广告名称。

我该如何解决这个问题?提前谢谢

0 个答案:

没有答案