我正在使用wordpress与nextgen库,我想从一个单独的JSON文件中获取特定图库ID的图像。到目前为止,我有这个代码,但只是从给定的ID导出图像(在这种情况下; 7)。我知道必须有某种foreach函数,但我的javascript知识不会那么远。
有人可以帮我这个吗?我到目前为止的代码:
mysql_connect("localhost","DB-NAME","DB-PASSWORD");
mysql_select_db("DB-NAME");
$result=mysql_query("SELECT filename FROM zs_ngg_pictures WHERE galleryid = '7' ORDER BY sortorder LIMIT 3");
while($row=mysql_fetch_assoc($result)){
$output[]=$row;
}
$fp = fopen('result.json', 'w');
fwrite($fp, json_encode($output));
fclose($fp);
echo json_encode($output);
答案 0 :(得分:0)
如果我正确地理解了你想要实现的目标,你可以简单地获取所有图片,将它们放在一个多维数组中:
$result=mysql_query("SELECT filename, galleryid FROM zs_ngg_pictures ORDER BY sortorder");
while($row=mysql_fetch_assoc($result)){
$output[$row['galleryid']][] = $row['filename'];
}
你有一个这样的PHP数组(如果你有两个id为7和23的画廊):
array(
7 => array('file7-1.jpg','file7-2.jpg','file7-3.jpg'),
23 => array('file23-1.jpg','file23-2.jpg'),
);
所以result.json
文件就像:
{ "7" : ["file7-1.jpg", "file7-2.jpg", "file7-3.jpg"],
"23" : ["file23-1.jpg", "file23-2.jpg"] }
如果您想为每个galleryid
分别创建文件,则可以循环并保存具有不同名称的文件:
foreach($output as $gall_id => $gallery) {
file_put_contents('result-'.$gall_id.'.json', json_encode($gallery));
}
您将拥有两个名为result-7.json
和result-23.json
答案 1 :(得分:0)
而不是执行复杂的fopen()
内容和echo
:
$fp = fopen('result.json', 'w');
fwrite($fp, json_encode($output));
fclose($fp);
echo json_encode($output);
你可以简单地打电话:
file_put_contents('result.json', json_encode($output));
readfile('result.json');
或者您跳过该文件并简单输出JSON:
echo json_encode($output));