0

次世代ギャラリーでワードプレスを使用していますが、別の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);
4

2 に答える 2

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));
于 2013-03-12T13:18:27.713 に答える
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 の 2 つのギャラリーがある場合):

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とという名前の 2 つのファイルが作成されます。result-23.json

于 2013-03-12T12:41:47.860 に答える