0

我正在开发的 PHP 脚本需要根据当时正在查看的配置文件从数据库中提取字段值。目前我已经开发了这个脚本,它对我有用,除了一个项目。问题是它显示的值是基于登录的用户个人资料而不是正在查看的个人资料。例如,假设有一个与每个名为 的配置文件相关联的字段profile_key。登录的用户具有以下值:

profile_key=123

当此用户查看他们自己的个人资料时,他们会看到以下内容:

profile_key=123

现在,让我们用第二个用户继续这个例子。第二个用户(未登录)具有以下键值:

profile_key=789

目前,当登录用户(第一个用户)访问未登录用户(第二个用户)时,登录用户会看到未登录用户的配置文件中显示以下内容:

profile_key=123

登录用户访问未登录用户配置文件时应显示的键值是为该用户配置文件设置的值:

profile_key=789

该站点基于 Joomla,下面是脚本的一个片段,它显示了获取配置文件键值的查询:

// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Get User ID
$user = JFactory::getUser();
$id = $user->id;
// Select all records from the user profile table where key begins with "custom.".
// Order it by the ordering field.
$query = 'SELECT cb_profilekey FROM #__comprofiler WHERE user_id = ' . $id.'';

如您所见,查询是根据查看页面的用户的 id 而不是正在查看的用户页面的 id 提取值。我认为这是我需要一些调整的地方。感谢您在此请求中花费的时间,非常感谢您提供任何帮助。

4

1 回答 1

1
$user = JFactory::getUser();

这将始终为您提供登录用户作为对象。您需要获取配置文件的 id,例如从这样的请求中获取。

$id = JFactory::getApplication()->input->getInt('id', 0);
于 2013-06-06T20:25:38.077 回答