我已经使用joomla的SEBLOD组件创建了一个表单,没关系,我可以正确查看输入的数据,但是我想操作数据,但是我无法连接到数据库,所以我尝试了以下操作:

<?php
defined( '_JEXEC' ) or die;


$catId = 11;
$catId2 = 12;

$sql = "SELECT * FROM #__cck_store_form_add_compras";
$con = &JFactory::getDBO();
$con->setQuery($sql);
$resultado = $con->loadObjectList();


$query = "SELECT * FROM #__content WHERE catid ='" . $catId . "' OR catid ='" .  $catId2 . "'";
$db = JFactory::getDBO();
$db->setQuery($query);
$articles = $db->loadObjectList();

foreach($articles as $article){
echo '<br/><br/>ID:'. $article->id
.'<br/>Titulo: '. $article->title
.'<br/>Quantidade Comprada: '.$resultado[0]->add_compras_quantidade_comprada
.'<br/>Unidade de Medida: '.$resultado[0]->add_compras_unidade_de_medida
.'<br/>Preço Por Kilo/Unidade: '.$resultado[0]->add_compras_preco_por_unidade_kilo
.'<br/>Data da Compra: '.$resultado[0]->add_compras_data_da_compra
.'<br/>Total da Compra: '.$resultado[0]->add_compras_total_da_compra
.'<br/>Local da Compra: '.$resultado[0]->add_compras_local_da_compra
;
}
?>


我要获取的是文章ID,文章名称,保存在表#__content中的文章类别以及保存在表#__cck_store_form_add_compras中的其他字段,但只有类别ID为11或类别ID的文章= 12

当我使用上面的代码时,我看到了结果,但是其中一些似乎重复出现。



当我在下面使用此功能时,我只能看到商品的ID和商品名称,但看不到其他字段:

$catId = 11;
$catId2 = 12;
$query = "SELECT * FROM #__content WHERE catid ='" . $catId . "' OR catid ='" . $catId2 . "'";
$db = JFactory::getDBO();
$db->setQuery($query);
$articles = $db->loadObjectList();




如果我使用下面的代码,则只能看到其他字段,但看不到文章的ID和文章的名称:

$sql = "SELECT * FROM #__cck_store_form_add_compras";
$con = &JFactory::getDBO();
$con->setQuery($sql);
$resultado = $con->loadObjectList();




查看文档,我发现了这段代码:

// Get a db connection.
$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

// Select all articles for users who have a username which starts with 'a'.
// Order it by the created date.
// Note by putting 'a' as a second parameter will generate `#__content` AS `a`
$query
 ->select($db->quoteName(array('a.*', 'b.username', 'b.name')))
 ->from($db->quoteName('#__content', 'a'))
 ->join('INNER', $db->quoteName('#__users', 'b') . ' ON (' . $db->quoteName('a.created_by') . ' = ' . $db->quoteName('b.id') . ')')
 ->where($db->quoteName('b.username') . ' LIKE \'a%\'')
 ->order($db->quoteName('a.created') . ' DESC');

// Reset the query using our newly populated query object.
$db->setQuery($query);

// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$results = $db->loadObjectList();


我认为这正是我所需要的,但是我不知道如何才能适应我的需要,有人可以帮助我吗?

对不起,我的英语不好,我正在用Google翻译帮助我。

最佳答案

显示SEBLOD内容的已过滤列表的最佳方法是使用SEBLOD搜索,并通过菜单项,模块或SEBLOD内容内部显示(使用CCK模块或CCK列表字段)。
在您的SEBLOD搜索中,您可以将“文章类别ID”设置为过滤器,并将“ 11,12”作为默认值,以便仅检索这2个类别中的文章。

请在SEBLOD论坛上找到您问题的完整答案http://www.seblod.com/community/forums/general-discussions/connecting-to-database#post22181

谢谢。
塞巴斯蒂安。

关于php - 如何在Joomla数据库/Seblod中选择(连接)多重表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27789851/

10-12 13:25