0

複数のアイテムを含むJSONファイルからmysqlにデータを追加するにはどうすればよいですか?現在、これは以下の値で各アイテム(ゲーム)の新しい行を作成します$json。唯一の問題は、$tagsT各アイテムには独自のタグのセットがあるため、各行が異なる必要があるときにすべての行が同じになることです。

$json = $_POST['json'];
$result = json_decode($json);
foreach($result as $key => $value) {
    if($value) {

foreach ($value->tags as $tag) { $tagsT .= $tag.','; }
 mysql_query("INSERT INTO `games_db`.`Games` (`title`, `description`, `image`, `category`, `page`, `rating`, `width`, `height`, `tags`) VALUES ('$value->name', '$value->description', '/images/$pageid.jpg', '$category', '$pageid', '$value->rating', '$value->width', '$value->height', '$tagsT')")
}
4

1 に答える 1

1

各ループの後に文字列変数をクリーンアップします。

 foreach ($value->tags as $tag) { $tagsT .= $tag.','; }

 mysql_query("INSERT INTO `games_db`.`Games` (`title`, `description`, `image`, `category`, `page`, `rating`, `width`, `height`, `tags`) VALUES ('$value->name', '$value->description', '/images/$pageid.jpg', '$category', '$pageid', '$value->rating', '$value->width', '$value->height', '$tagsT')")

 $tagsT = "";  // reset string

それ以外の場合は、明らかに前のタグを保持します。ローカル変数のスコープは関数内にあります。の前に定義されていなくても、有効なままですforeach

また、最新のデータベースチュートリアルを読むことを検討してください。PDOとプリペアドステートメントを検索します。

于 2012-10-27T20:33:37.730 に答える