0
我试图从外部php脚本(我们称之为locations.php)内的k2_items表中的extra_fields字段加载数据,我想将其包含在网站上的其他位置。在外部脚本中获取K2额外字段数据
数据在extra_field字段JSON编码:
[{"id":"1","value":"somevalue"},{"id":"2","value":"somevalue"},{"id":"3","value":"somevalue"}.]
例如:我有IDS 1,6,10,15,22,44和66 项我想为每个变量额外的领域和每个项目,所以我可以在别处使用它们。 如果id为1的项目有3个额外的字段,我想变量$ item1ExtraField1,$ item1ExtraField2和$ item1ExtraField3。
所以首先我发起的Joomla框架:
// Get Joomla Framework
defined('_JEXEC') or die('Restricted access');
define('JPATH_BASE', realpath(dirname(__FILE__)));
define('DS', DIRECTORY_SEPARATOR);
require_once (JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once (JPATH_BASE.DS.'includes'.DS.'framework.php');
require_once (JPATH_BASE.DS.'libraries'.DS.'joomla'.DS.'factory.php');
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
然后我试图DB查询与2个IDS,看看我是否能得到数据:
// Load the data from the database.
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('extra_fields')
->from('#__k2_items')
->where('id = 15 or id= 289');
$db->setQuery($query);
$items = $db->loadObjectList();
// Check for a database error.
if ($db->getErrorNum())
{
$this->_subject->setError($db->getErrorMsg());
return false;
}
接着,我会慢慢地失去了。 我没有得到任何结果,如果我尝试:
foreach ($items as $item) {
echo json_decode($item);
}
和的var_dump给我
array(2) { [0]=> object(stdClass)#1395 (1) { ["extra_fields"]=> string(1013) "[{"id":"3","value":"somevalue"},{"id":"4","value":"somevalue"}, etc ]
或使用jdump扩展:
[array] (unknown name)
[stdClass object] 0
Properties
[string] extra_fields = "[{"id":"3","value":"somevalue"},{"id":"4","value":"somevalue"}, etc ]"
[stdClass object] 1
Properties
[string] extra_fields = "[{"id":"3","value":"somevalue"},{"id":"4","value":"somevalue"}, etc ]"
所以的Joomla框架初始化似乎确定,DB连接是有,但我不知道如何继续。
任何帮助,将不胜感激。
foreach($ items as $ item){ echo $ item-> id;
echo $ item-> value; } – Arunu 2013-03-08 05:48:34