变量将值保持在循环中

时间:2012-10-27 20:29:16

标签: php json

如何将包含多个项目的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')")
}

1 个答案:

答案 0 :(得分: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和准备好的陈述。