当前位置: 首页 > 知识库问答 >
问题:

在joomla中执行sql查询

鲍永春
2023-03-14

大家好,我在joomla 2.5中为后端做了一个组件,但是我在执行sql查询时遇到了问题,我的变量是空的,所以它不会显示任何内容。

我有其他的文件和文件,但这里对我的问题很重要。

首先在我的controller.php我有这个内部管理文件

class BusquedaController extends JController
{
    protected $default_view= 'restaurantes';
    public function display(){
     parent::display();
    }
}

在我的模型文件我有restaurante.php

class BusquedaModelRestaurante extends JModelList{
    function getListaRestaurantes(){
        $db= JFactory::getDBO();
        $sql= "SELECT * FROM #__restaurantes";
        $db->setQuery($sql);
        return $db->loadObjectList();   
    }
}

在我的控制器文件里我有这个

class BusquedaControllerRestaurantes extends JControllerAdmin
{

    public function getModel($name = 'Restaurante', $prefix = 'BusquedaModel', $config = array('ignore_request' => true))
    {
        $model = parent::getModel($name, $prefix, $config);
        return $model;
    }

    function listado(){
        $firephp->log('hola');
        $view=& $this->getView('restaurantes', 'html');
        $model= $this->getModel("restaurante");
        $listaMensajes= $model->getListaRestaurantes();
        $view->assignRef('resList', $listaMensajes);
        $view->display();
        }
}

最后,在我的视图文件中,我有一个默认的tmpl文件。显示表格的php

foreach ($this->resList as $item):
        $checked=JHTML::_('grid.id', $n, $item->id); ?>
            <tr>
                <td><?php echo $checked; ?></td>
                <td><?php echo $item->id; ?></td>
                <td><?php echo $item->nombre; ?></td>
                <td><?php echo $item->direccion; ?></td>
                <td><?php echo $item->telefono; ?></td>
                <td><?php echo $item->web; ?></td>
                <td><?php echo $item->tipo; ?></td>
                <td><?php echo $item->zona; ?></td>
                <td><?php echo $item->metro; ?></td>
            </tr>
            <?php 

但是元素reslist是空的,我不知道我的组件是否做得好!!,有人知道joomla 2.5中的某个组件的教程或其他内容

谢谢

共有3个答案

罗安和
2023-03-14

抛出运行时异常

try
{
    $db->setQuery($query);
    $result = $db->loadResult(); // If it fails, it will throw a    RuntimeException 
}
catch (RuntimeException $e)
{
    throw new Exception($e->getMessage());
}

也在控制器中声明一个变量为受保护

protected $resList;

将值分配给变量,如

$this->resList = $model->getListaRestaurantes();
陈坚
2023-03-14

试试这个,将$listaMensajes更改为$this-

$这个-

丁慈
2023-03-14

尝试在组件的开头添加错误报告(E_ALL),它将有望向您显示您做错了什么。

如果这无助于通过simpleprint\r($db)在getListaRestaurantes()方法中查看查询返回的内容-

另外,在JModels中,您可以使用$this-

 类似资料:
  • 问题内容: 我有5个单独的SQL查询,这些查询按顺序在控制器操作中执行。这是我用来执行它们的方法: 因此,基本上我有五个连续的查询,这些查询必须按顺序执行,并且代码必须在它们下面继续执行。有没有更好的方法可以从控制器操作内部执行查询?我不确定使用当前方法进行错误处理的最佳方法。 谢谢! 问题答案: 首先看在控制器和数据库之间创建一个抽象层。存储库就是一个例子,它会在您进行测试时提供帮助。您可以创建

  • Query 也可以直接执行一个SQL查询,即Select命令。在Postgres中支持原始SQL语句中使用 ` 和 ? 符号。 sql := "select * from userinfo" results, err := engine.Query(sql) 当调用 Query 时,第一个返回值 results 为 []map[string][]byte 的形式。 Query 的参数也允许传

  • 下面是目前为止我所想到的伪代码。任何帮助都将不胜感激!谢谢! 我检查了Table API,但对于流,似乎不支持很多操作,例如OrderBy。

  • 问题内容: 所涉及的rdms是oracle错误是 我想用这个查询做的是: 阈值表包含列阈值类型,其中包含现金交易表的列名称 对于阈值表中的每个记录,我们需要根据现金交易表中的阈值类型来比较总和(金额)组。 并将获取的数量与阈值表的threshold_amount比较 我需要选择threshold_id 阈值表: 现金交易表: 期望的输出: 让我们进行第一个提取:阈值表中的第一个记录 1.现在thr

  • 问题内容: 我正在将MySQL Workbench CE用于Windows 5.2.40版。 我想一起执行以下SQL查询。不过我只能先执行执行的SQL查询查询,然后执行查询,之后执行查询。 那么,如何执行,并通过点击查询? 问题答案: 在每个语句后添加分号:

  • 我想知道是否可以在一个准备好的语句中执行多个SQL查询。这是我要执行的第一个查询: