我写了一个与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');
?>
我遇到这个问题已经困了两天了。 我很感激任何帮助。 谢谢你的头脑。
答案 0 :(得分:1)
你所经历的是死亡白屏。
很可能您已关闭错误报告(建议用于生产)t 有一个错误,但它没有显示在屏幕上。你可以:
至于为什么会发生这种情况,我会说你没有访问函数内部的$ db变量(参见this answer)。
如果代码在Jooomla MVC类模型中,$db = $this->getDbo()
会做类似的事情。
我鼓励您使用类而不是函数,您将获得一些额外的东西,如自动加载