Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Joomla数据库/Seblod中选择(连接)多个表_Php_Mysql_Database_Joomla3.0 - Fatal编程技术网

Php 如何在Joomla数据库/Seblod中选择(连接)多个表

Php 如何在Joomla数据库/Seblod中选择(连接)多个表,php,mysql,database,joomla3.0,Php,Mysql,Database,Joomla3.0,我使用组件SEBLOD for joomla创建了一个表单,没关系,我可以正确查看输入的数据,但我想处理数据,但是我无法连接到数据库,因此我尝试了以下方法: <?php defined( '_JEXEC' ) or die; $catId = 11; $catId2 = 12; $sql = "SELECT * FROM #__cck_store_form_add_compras"; $con = &JFactory::getDBO(); $con->setQuery(

我使用组件SEBLOD for joomla创建了一个表单,没关系,我可以正确查看输入的数据,但我想处理数据,但是我无法连接到数据库,因此我尝试了以下方法:

<?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和文章名称:

$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();
我想这正是我所需要的,但我不知道如何才能改变我的需要,有人可以帮助我吗


抱歉,我的英语不好,我正在使用谷歌翻译来帮助我。

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

请在SEBLOD论坛上找到您问题的完整答案

谢谢。 Sebastien.

与JTable::getInstance(“内容”);您可以从Joomla内容表中获取数据,并将SEBLOD内容留给查询

例如:

$query = "SELECT * FROM #__cck_store_form_produto";
$db = &JFactory::getDBO();
$db->setQuery($query);
$values = $db->loadObjectList();
foreach($values as $val){

echo $val->id; // The article ID is inside SEBLOD table too.
echo $val->your_field; // will write the value on a SEBLOD field called "your_field"

// now to get joomla values 

$maindata =& JTable::getInstance("content");
$maindata->load($val->id);

echo $maindata->title; //will write article title
echo $maindata->alias; //will write article alias
echo $maindata->catid; //will write article Category ID

}
或者您也可以在两个表之间使用“内部联接”,只需使用ID链接值:

$query = "SELECT * FROM #__cck_store_form_produto";
$db = &JFactory::getDBO();
$db->setQuery($query);
$values = $db->loadObjectList();
foreach($values as $val){

echo $val->id; // The article ID is inside SEBLOD table too.
echo $val->your_field; // will write the value on a SEBLOD field called "your_field"

// now to get joomla values 

$maindata =& JTable::getInstance("content");
$maindata->load($val->id);

echo $maindata->title; //will write article title
echo $maindata->alias; //will write article alias
echo $maindata->catid; //will write article Category ID

}