簡體   English   中英

Joomla數據庫查詢列參數OS Events Manager

[英]Joomla Database query column params OS Events Manager

我正在使用OS Events Manager,並且需要顯示來自表列的查詢以顯示“ field_speaker”,這是OS Events Manager中params列的下方。 我有這個代碼:

$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,顯然還不夠... Sam 在此處輸入圖片說明

您似乎只對params列感興趣,因此只能在SELECT子句中寫入該列,並使用loadColumn()來訪問數據(生成一維數組以簡化處理)。

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

ps當您遇到基於Joomla的問題時,請將其發布到Joomla Stack Exchange中,以便該社區可以借鑒一些新知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM