我使用php和mysql做了一个Joomla模块,一个函数正确地提取了一个用户,然后将结果传递给另一个提取数组的函数。
这些是班级
<?php
class modUno
{
public static function due()
{
$db = JFactory::getDBO();
$query = "SELECT userid FROM #__session WHERE EXISTS ( SELECT 'avatar, cb_skipe' FROM #__comprofiler) ORDER BY RAND() LIMIT 1;";
$db->setQuery($query);
$result = $db->loadResult();
return $result;
}
public static function tre()
{
$risultato = modUno::due();
$db = JFactory::getDBO();
$query = "SELECT avatar, cb_skipe FROM #__comprofiler WHERE id = '{$risultato}'; ";
$db->setQuery($query);
$result = array($db->loadResult());
return $result;
}
}
?>
然后我用这些模块检索值
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once( dirname(__FILE__).'/helper.php' );
$foto = ? i dont know ;
$skipe = ? i dont know ;
require JModuleHelper::getLayoutPath('mod_chat');
?>
我如何检索数组的值(两个值)并分配给$ foto和$ skipe?
答案 0 :(得分:0)
我并非100%确定您的最终目标是什么,但我已经注意到的一些有用的内容如下所示:
1)在modUno :: due();方法看起来您正在尝试检索登录用户的用户ID。如果是这种情况,Joomla提供了一种核心方法,可以轻松检索当前登录的用户对象。
$user = JFactory::getUser();
$user_id = $user->id;
或者,如果您只需要在没有整个用户对象的情况下访问user_id。
$user_id = JFactory::getUser()->id;
2)从modUno :: tre()中检索值时;方法,你应该使用与Joomla的Dbo对象不同的方法来检索结果集。
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('avatar, cb_skipe');
$query->from($db->quoteName(''));
$query->where('id=' . (int) JFactory::getUser()->id);
$db->setQuery($query);
$db->execute();
return $db->returnObject();
或
return $db->returnAssoc();
3)现在您可以像这样分配值。
//调用static helper方法加载结果集。
$result = modUno::tre();
//如果您使用了loadAssoc()
$foto = $result['avatar'];
$skipe = $result['cb_skipe'];
//如果你使用了loadObject()
$foto = $result->avatar;
$skipe = $result->cb_skipe;