php - Joomla 数据库查询列参数 OS 事件管理器

标签 php mysql joomla3.0

我正在使用操作系统事件管理器,我需要显示表列中的查询以显示操作系统事件管理器中参数列下的“field_speaker”。我有这个代码: `

$query   = $db->getQuery(true)
->select('a.*')
->from('#__eb_speakers AS a')
->innerJoin('#__eb_events AS b ON a.id = b.speaker_id')
->where('b.event_id = ' . $event->id)
->order('b.id');
$db->setQuery($query);
$speakers = $db->loadObjectList();
print_r($speakers); ?>'

我不知道如何调用列参数“field_speaker”,如我提供的图像中所示...如果您查看我的代码,我只有 eb_events - 我猜这就是一切出错的地方? ?

任何帮助将不胜感激。我懂一点 PHP——显然还不够…… 山姆enter image description here

最佳答案

您似乎只对 params 列感兴趣,因此只需在 SELECT 子句中写入该列并使用 loadColumn() 访问数据(生成 1维数组以简化处理)。

https://docs.joomla.org/Selecting_data_using_JDatabase#Single_Column_Results

如果您想要的列数多于params,则应在查询中明确命名它们,并使用不同的方法来收集结果集。 (见上面的链接)

我未经测试的建议:

$query = $db->getQuery(true)
            ->select('a.params')                 // only ask for what you intend to use
            ->from('#__eb_speakers AS a')
            ->innerJoin('#__eb_events AS b ON a.id = b.speaker_id')
            ->where('b.event_id = ' . (int)$event->id)   // for security cast as an integer
            ->order('b.id');
$db->setQuery($query);
if (!$params = $db->loadColumn()) {
    echo "No Data Found for " . (int)$event->id;
} else {
    foreach ($params as $param) {
        $speakers[] = json_decode($param, true)['field_speaker']; // I assume this key always exists
    }
}
var_export($speakers);  // this will show you the isolated speaker data

附:当您有基于 Joomla 的问题时,请将它们发布到 Joomla Stack Exchange 中,以便该社区有一些新的东西可以研究。

关于php - Joomla 数据库查询列参数 OS 事件管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52680392/

相关文章:

php - 通过局域网IP地址连接websocket服务器

php - 如何使用 JavaScript 填充 HTML 选择列表

mysql - 2.4 连接远程数据库

javascript - CSS 根据另一个元素设置颜色

mysql - Joomla Development Database Select Query Giving 不是唯一的表/别名

php - 在 MySQL + PHP 中使用 SELECT 插入?

php - 将日期和时间插入Mysql

php - mysql SELECT 中的运行总计

php - 查看不返回数组集。拉维尔

javascript - 在 Joomla 中加载脚本标签的问题