我有这段代码,目前几乎可以满足我的需要。它需要从表中选择所有记录,然后将它们格式化以准备好编码为 JSON。但是,一个记录将有一个“类型”字段设置为“默认”。这条记录首先放在 JSON 文件中,格式略有不同。
目前,如果设置为默认值的记录是数据库表中的最后一个条目,则此方法非常有效。但是,如果不是,则在编码为 JSON 时格式会中断。
任何人都可以帮助建议一个修复程序,迫使它忽略默认条目的位置,但保留格式?
// Get the data from the DB.
$query = 'SELECT type, headline, startDate, text, media, caption, credits FROM #__timeline_entries'.$table.'';
$db->setQuery($query);
// Load it and put it into an array
$list = $db->loadObjectList();
$len = count($list);
$data = array();
for ($i = 0; $i < $len; $i++) {
$temp = (array) $list[$i];
$temp["asset"] = array(
"media" => $temp["media"],
"credit" => $temp["credits"],
"caption" => $temp["caption"]
);
unset($temp["media"]);
unset($temp["credits"]);
unset($temp["caption"]);
if ($temp["type"] == "default") {
$data = $list[$i];
unset($list[$i]);
$list[$i] = $temp;
}
}
// Prep it for JSON
$data->date = &$list;
// Loop it once more!
$dataTwo->timeline = &$data;
// Encode the data to JSON.
$jsondata = json_encode($dataTwo);
这是 Joomla 组件的一部分,但它并没有真正使用数据库连接之外的任何 Joomla 框架。我想我会提到它以防万一它有什么不同,虽然我不明白如何。