繁体   English   中英

调用函数php joomla不起作用

[英]calling function php joomla doesn't work

我写了一个与joomla数据库集成的简单php页面。 我编写了两个函数并调用了它们。

如果函数中的代码被写为非函数(在代码本身上),则它可以正常工作。 但! 当代码起作用并从页面调用时,整个屏幕变为白色。

代码很简单...第一个函数获取用户的ID并返回表中的数字总和。 第二个函数获取用户的用户名并返回其ID号。 为了确保功能正常工作,我向他们发送了特定的值(第一个函数为24,第二个为“ admin”)。

编码:

<?php
    defined('_JEXEC') or die('Restricted access');
    $items = $params->get('items', 10);
    $db =& JFactory::getDBO();

    function get_sum($uid)
    {
        $sum = 0;
        $query = "SELECT orderpayment_amount 
            FROM #__j2store_orders 
            WHERE user_id = '$uid' 
            ORDER BY id DESC";
        $db->setQuery( $query, 0 , $items );
        $rows = $db->loadObjectList();
        foreach($rows as $row)
        {
            $sum = $sum + $row->orderpayment_amount;
        }
        return "$sum";
    }

    function getTalId($u)
    { 
        $query = "SELECT id 
                  FROM #__users 
                  WHERE username = '$u' 
                  ORDER BY id DESC";
        $db->setQuery( $query, 0 , $items );
        $rows = $db->loadObjectList();
        foreach($rows as $row)
        {
            return $row->id;
        }
    }

    echo get_sum(42);
    echo getTalId('admin');
?>

我因这个问题呆了两天。 我将不胜感激。 谢谢。

您正在经历的是死亡白屏。

很可能您已关闭错误报告功能(建议在生产环境中使用)t出现错误,但未在屏幕上显示。 您可以:

  • 更改错误报告(系统>全局配置>服务器>错误报告:开发)
  • 检查您的服务器错误日志。

至于为什么发生这种情况,我想说您无法访问函数内部的$ db变量(请参见此答案 )。

如果代码在Jooomla MVC类模型中,则$db = $this->getDbo()会执行类似的操作。

我鼓励您使用类而不是函数,您将获得一些额外的东西,例如自动加载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM