Php 如何从joomla 1.5模块中的另一个表中获取数据?
目前我有一个组件模块,我想从另一个表中添加一些数据 这是我当前的helper.php代码:Php 如何从joomla 1.5模块中的另一个表中获取数据?,php,mysql,joomla1.5,helper,joomla-module,Php,Mysql,Joomla1.5,Helper,Joomla Module,目前我有一个组件模块,我想从另一个表中添加一些数据 这是我当前的helper.php代码: <?php defined('_JEXEC') or die('Direct Access to this location is not allowed.'); class Modprop_lastHelper { function getItems($ShowFeatured,$OrderBy,$Order,$amountShow,$ShowPropertyID) {
<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
class Modprop_lastHelper
{
function getItems($ShowFeatured,$OrderBy,$Order,$amountShow,$ShowPropertyID)
{
switch($OrderBy) {
case 0 :
$OrderBy = 'p.id';
break;
case 1 :
$OrderBy = 'p.name';
break;
case 2 :
$OrderBy = 'p.price';
break;
case 3 :
$OrderBy = 'p.hits';
break;
case 4 :
$OrderBy = 'p.refresh_time';
break;
}
switch($Order) {
case 0 :
$Order = 'ASC';
break;
case 1 :
$Order = 'DESC';
break;
}
if($ShowPropertyID){$where= 'WHERE p.id IN ('.$ShowPropertyID.')';}else{$where= 'WHERE p.published = 1 ';}
if($ShowFeatured){$sqlFeatured= ' AND p.featured = 1';}
$db = &JFactory::getDBO();
$query = 'SELECT p.*, i.name as imagename,c.name as name_category,t.name as name_type,cy.name as name_country,s.name as name_state,l.name as name_locality,'
. ' CASE WHEN CHAR_LENGTH(p.alias) THEN CONCAT_WS(":", p.id, p.alias) ELSE p.id END as Pslug,'
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as Cslug,'
. ' CASE WHEN CHAR_LENGTH(cy.alias) THEN CONCAT_WS(":", cy.id, cy.alias) ELSE cy.id END as CYslug,'
. ' CASE WHEN CHAR_LENGTH(s.alias) THEN CONCAT_WS(":", s.id, s.alias) ELSE s.id END as Sslug,'
. ' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(":", l.id, l.alias) ELSE l.id END as Lslug, '
. ' CASE WHEN CHAR_LENGTH(t.alias) THEN CONCAT_WS(":", t.id, t.alias) ELSE t.id END as Tslug '
. ' FROM #__properties_products AS p '
. ' LEFT JOIN #__properties_country AS cy ON cy.id = p.cyid '
. ' LEFT JOIN #__properties_state AS s ON s.id = p.sid '
. ' LEFT JOIN #__properties_locality AS l ON l.id = p.lid '
. ' LEFT JOIN #__properties_category AS c ON c.id = p.cid '
. ' LEFT JOIN #__properties_type AS t ON t.id = p.type '
. ' LEFT JOIN #__properties_images AS i ON i.parent = p.id '
. $where
. $sqlFeatured
. ' GROUP BY p.id '
. ' ORDER BY '.$OrderBy.' '.$Order
. ' LIMIT '.$amountShow;
$db->setQuery($query);
$items = $db->loadObjectList();
// $items = ($items = $db->loadObjectList())?$items:array();
//echo str_replace('#_','jos',$query);
return $items;
}
function NameCategory()
{
$db =& JFactory::getDBO();
$query = 'SELECT * FROM #__properties_category WHERE published = 1 ORDER BY id';
$db->setQuery($query);
$Categories = $db->loadObjectList();
foreach ($Categories as $row) :
$Category[$row->id] = $row->name;
endforeach;
return $Category;
}
function NameType()
{
$db =& JFactory::getDBO();
$query = 'SELECT * FROM #__properties_type WHERE published = 1 ORDER BY name';
$db->setQuery($query);
$Types = $db->loadObjectList();
foreach ($Types as $row) :
$Type[$row->id] = $row->name;
endforeach;
return $Type;
}
function NameLocality()
{
$db =& JFactory::getDBO();
$query = 'SELECT * FROM #__properties_locality WHERE published = 1 ORDER BY name';
$db->setQuery($query);
$Localities = $db->loadObjectList();
foreach ($Localities as $row) :
$Locality[$row->id] = $row->name;
endforeach;
return $Locality;
}
function getItemid( $TableName )
{
$db =& JFactory::getDBO();
$query = 'SELECT id FROM #__menu' .
' WHERE LOWER( link ) = "index.php? option=com_properties&view='.$TableName.'&id=0"';
$db->setQuery( $query );
$output = $db->loadResult();
if(!$output){
$query = 'SELECT id FROM #__menu' .
' WHERE LOWER( link ) = "index.php? option=com_properties&view=properties"';
$db->setQuery( $query );
$output = $db->loadResult();
}
if(!$output){
$query = 'SELECT id FROM #__menu' .
' WHERE LOWER( link ) = "index.php?option=com_properties&view=properties&cid=0&tid=0"';
$db->setQuery( $query );
$output = $db->loadResult();
}
return $output;
}
}
?>
当我试图从“单位”表中显示某些内容时,不会显示任何内容。我在tmp视图中使用以下代码:
<?php echo $Units->title;?>
代码有什么问题?以下是您必须执行的操作:
- 在函数getUnits()中重命名您的函数单元()
- 重命名$Units=$db->loadObjectList()in$output=$db->loadObjectList()李>
- 重命名返回$Units在中返回$output强>
$units=Modprop_lastHelper::getUnits()代码>
var_dump($units)代码>
确保包含帮助文件(例如,like):
require_once(dirname(_FILE__).DS.helper.php')代码>
我还强烈建议你学习Joomla!关于
用于调试您的代码。此外,请对主题“”进行一些研究。你在任何地方都找不到帮助,你只是说“它不起作用…”
没人知道答案?没人知道你犯了什么错误。什么是$Units->title?您需要以某种方式调用函数Units()。我没有得到任何错误,什么也没有发生。这是一个joomla 1.5模块。在helper.php中我添加了一个函数,我认为在视图中helper.php被称为。。。我应该如何正确地做?例如,Units是一个表,title是数据库属性中的一个字段。
<?php echo $Units->title;?>