根据以下答案进行了更新:
根据以下答案,我现在有以下PHP脚本:
header('Content-type:application/json');
function getdata($the_query)
{
$connection = mysql_connect('server', 'user', 'pass') or die (mysql_error());
$db = mysql_select_db('db_name', $connection) or die (mysql_error());
$results = mysql_query($the_query) or die(mysql_error());
header('Content-type:application/json');
$the_data['rss']['channels']['title'] = $title;
$the_data['rss']['channels']['link'] = $link;
$the_data['rss']['channels']['description'] = $description;
while($row = mysql_fetch_array($result))
{
extract($row);
$the_data['rss']['channels']['items']['title'] = $item_title;
$the_data['rss']['channels']['items']['link'] = "$item_link;
$the_data['rss']['channels']['items']['date'] = $item_date;
$the_data['rss']['channels']['items']['description'] = $item_description;
}
mysql_close($connection);
return json_encode($the_data);
}
返回以下内容:
{
"rss":
{
"channels":
{
"title":"title goes here",
"link":"link goes here",
"description":"description goes here",
"items":
{
"title":"'title goes here",
"link":"link goes here",
"date":"date goes here",
"description":"description goes here"
}
}
}
}
它应该根据从数据库返回的行数返回许多项目,为什么我只获得1项?
答案 0 :(得分:10)
试试这个:
<?php
$channel = array(
'title' => 'title goes here',
'link' => 'link here',
'description' => 'description',
'items' => array()
);
while($row = mysql_fetch_array($results))
{
extract($row);
$channel['items'][] = array(
'title' => $title,
'link' => $link,
'guid' => $guid,
'pubDate' => $date,
'description' => $description
);
}
$channels = array($channel);
$rss = (object) array('rss'=> array('channels'=>$channels));
$json = json_encode($rss);
echo $json;
?>
答案 1 :(得分:1)
是的,它应该相当简单,类似于
$the_data['rss']['channels']['title'] = $title;
$the_data['rss']['channels']['link'] = $link;
$the_data['rss']['channels']['description'] = $desc;
然后在你的while循环内,你可以拥有,
$the_data['rss']['channels']['items'][] = $row;
最后对数组进行编码,
json_encode($the_data);