Zend Framework 1 中的 foreach 循环不会在 json 输出中产生 return 多个结果
foreach loop in Zend Framework 1 wont return multiple results in json output
我已经建立了一个脚本来首先在数据库中查询 table 'linkags' 的 id,其中 'id' 等于 'userId' 并且 'type' 等于至 'type'.
然后我使用结果查询 table 'linktagRevisions' 以获取返回的与该用户相关的 id 数组的最新修订。
然后我将 'linktagRevisions' 的列表输出到 json 输出。
我的问题是无法反序列化 'content'。因此,在构建我的数组以在 json 中输出时,我编码了:
$data = array('linktag' => unserialize($result[$linkI]['content']));
成功 returns 一个未序列化的结果,但即使有 foreach 循环,它也限制为一行。如何使用循环获取所有行?
这是我的完整代码:
public function testAction()
{
//Return list of tags for the defined user and make default type 10
$u = 2;
$t = 10;
$resultid = array();
//Connect to database
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select()
->from(array('lt' => 'Linktags'),
array('id'))
->where('userId = ?', $u)
->where('type = ?', $t);
$stmt = $select->query();
$resultid = $stmt->fetchAll();
//print_r($resultid);
//Get latest revision from database and loop through $id's
$id = $resultid;
//print_r($id);
//setup array and loop
$result = array();
foreach($id as $lId_all) {
foreach($lId_all as $lId) {
//Connect to database
$db = Zend_Db_Table::getDefaultAdapter();
//Perform Query
$select = $db->select('')
->from(array('lr' => 'LinktagRevisions'),
array('content'))
->where('linktagId = ?', $lId)
->order('updated DESC')
->limit(1);
$stmt = $select->query();
$result[$lId] = $stmt->fetch();
}
}
$linkId = $resultid;
foreach ($linkId as $linkI_all) {
foreach ($linkI_all as $linkI) {
//print_r($linkI);
$data = array('linktag' => unserialize($result[$linkI]['content']));
}
print_r($data);
$this->_helper->json($data, true);
}
}
尝试像这样添加 link 索引:
$data = array();
foreach ($linkId as $linkI_all) {
foreach ($linkI_all as $linkI) {
$data['linktag'.$linkI] = unserialize($result[$linkI]['content']);
}
}
$this->_helper->json($data, true);
我已经建立了一个脚本来首先在数据库中查询 table 'linkags' 的 id,其中 'id' 等于 'userId' 并且 'type' 等于至 'type'.
然后我使用结果查询 table 'linktagRevisions' 以获取返回的与该用户相关的 id 数组的最新修订。
然后我将 'linktagRevisions' 的列表输出到 json 输出。
我的问题是无法反序列化 'content'。因此,在构建我的数组以在 json 中输出时,我编码了:
$data = array('linktag' => unserialize($result[$linkI]['content']));
成功 returns 一个未序列化的结果,但即使有 foreach 循环,它也限制为一行。如何使用循环获取所有行?
这是我的完整代码:
public function testAction()
{
//Return list of tags for the defined user and make default type 10
$u = 2;
$t = 10;
$resultid = array();
//Connect to database
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select()
->from(array('lt' => 'Linktags'),
array('id'))
->where('userId = ?', $u)
->where('type = ?', $t);
$stmt = $select->query();
$resultid = $stmt->fetchAll();
//print_r($resultid);
//Get latest revision from database and loop through $id's
$id = $resultid;
//print_r($id);
//setup array and loop
$result = array();
foreach($id as $lId_all) {
foreach($lId_all as $lId) {
//Connect to database
$db = Zend_Db_Table::getDefaultAdapter();
//Perform Query
$select = $db->select('')
->from(array('lr' => 'LinktagRevisions'),
array('content'))
->where('linktagId = ?', $lId)
->order('updated DESC')
->limit(1);
$stmt = $select->query();
$result[$lId] = $stmt->fetch();
}
}
$linkId = $resultid;
foreach ($linkId as $linkI_all) {
foreach ($linkI_all as $linkI) {
//print_r($linkI);
$data = array('linktag' => unserialize($result[$linkI]['content']));
}
print_r($data);
$this->_helper->json($data, true);
}
}
尝试像这样添加 link 索引:
$data = array();
foreach ($linkId as $linkI_all) {
foreach ($linkI_all as $linkI) {
$data['linktag'.$linkI] = unserialize($result[$linkI]['content']);
}
}
$this->_helper->json($data, true);