Php Joomla 3.2前端模块特定通知“echo”

Php Joomla 3.2前端模块特定通知“echo”,php,mysql,database,joomla,echo,Php,Mysql,Database,Joomla,Echo,我正在尝试访问joomla后端预定义的一些信息 id资产\u id标题注释激活 90 61测试标题测试注1 我用getInt-ItemeId尝试了相同的代码,它适用于另一个表,但不适用于假设,所以我尝试了getInt-id 这是我试图开始工作的一些代码,但是echo$注释不起作用 <?php defined('_JEXEC') or die; $menuitemid = JRequest::getInt('id'); $db =& JFactory::getDBO();

我正在尝试访问joomla后端预定义的一些信息

id资产\u id标题注释激活 90 61测试标题测试注1

我用getInt-ItemeId尝试了相同的代码,它适用于另一个表,但不适用于假设,所以我尝试了getInt-id

这是我试图开始工作的一些代码,但是echo$注释不起作用

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


$menuitemid = JRequest::getInt('id');
$db     =& JFactory::getDBO();  
$query = "SELECT note FROM #__modules WHERE published = 1 and id = '".$menuitemid."' ";
$db->setQuery($query);
$note = $db->loadResult();

?>


<div title="**<?php echo $note ?>**" class="custom<?php echo $moduleclass_sfx ?>" <?php if ($params->get('backgroundimage')) : ?> style="background-image:url(<?php echo $params->get('backgroundimage');?>)"<?php endif;?> >
    <?php echo $module->content;?>
</div>

好的,让我们一点一点地看一遍。正如我在评论中提到的,JRequest已被弃用,因此您需要使用以下内容:

$jinput = JFactory::getApplication()->input;
$menuitemid = $jinput->get('id', null, 'INT');
您正在使用旧的编码标准进行数据库查询,并且不使用任何转义方法。Joomla文档中也提供了以下内容,这是您应该使用的内容:

$db = JFactory::getDbo();     
$query = $db->getQuery(true);

$query->select('note')
      ->from($db->quoteName('#__modules'))
      ->where($db->quoteName('published') . ' = '. (int)1 . 
      ' AND' . $db->quoteName('id') . ' = '. $db->quote($menuitemid));

$db->setQuery($query);     
$note = $db->loadResult();

echo $note;
在上面的查询中,您将看到我使用了int1,这意味着该值将始终是一个整数。我还对字段使用了quoteName,对用于转义的值使用了quote

这将输出您分配给模块的注释。我已经测试过了,它对我非常有效


希望这有帮助

JRequest已被弃用。你应该使用JInput。请务必阅读Joomla文档,它是一段代码,用于访问mysql菜单表中的信息$menuitemid应该获得代码出现在其中的实际模块的id。非常感谢,但目前它对我不起作用。首先,当我尝试使用JInput时,每次都会出现对非成员函数的错误调用,这一次代码是适当的,但它不会在回显时显示所需的信息。我们需要这个菜单吗?我检查了数据库,但信息保存正确且处于活动状态。echo$menuitemid也没有给出整数值。最好的办法是检查数据库表中的注释列。您正在检查published=1和id=$menuitemid。如果您使用var_dump$menuitemid,那么应该会输出ID。我可以保证,当我将其添加到登录模块的顶部时,它可以正常工作。然后我得到了24作为ID,它为我显示了便笺文本。var_dump$note在ID正确之前不会工作,但是你怎么能得到null呢?您要将此代码添加到哪里?我将代码添加到modules\mod\u custom\tmpl\default.php中,它也是fineme,这就是/modules/mod\u custom/tmpl/edit中的整个default.php:
$jinput = JFactory::getApplication()->input;
$menuitemid = $jinput->get('id', null, 'INT');
$db = JFactory::getDbo();     
$query = $db->getQuery(true);

$query->select('note')
      ->from($db->quoteName('#__modules'))
      ->where($db->quoteName('published') . ' = '. (int)1 . 
      ' AND' . $db->quoteName('id') . ' = '. $db->quote($menuitemid));

$db->setQuery($query);     
$note = $db->loadResult();

echo $note;