首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON循环遍历结果PHP

问JSON循环遍历结果PHP
EN

Stack Overflow用户
提问于 2017-02-03 17:08:22
回答 4查看 54关注 0票数 0

我有一个Json文件‘Extt.json’,我通过结果循环获取内容,但是我的代码只返回一行,我的脚本==>

代码语言:javascript
复制
$filename  = "extract.json";
$str = file_get_contents($filename);
if($str!=null) {
    $decoded=json_decode($str,true);
    $compteur = 0;
    $compteur =  count($decoded);
    if(is_array($decoded)) {
        foreach($decoded as $value) {
            $var1= $value["val1"];
            $var2 = $value["val2"];
            $var3 = $value["val3"];
            $var4 = $value["val4"];
            $var5 = $value["val5"];....

            $injection_final = "INSERT INTO `Table`(
                `var1`,
                `var2`,
                `var3`,
                `var4`,
                `var5`,)
                VALUES
                ($var1,$var2,$var3,$var4,$var5)";
            $inj = mysqli_query($con1,$injection_final);
        }
    }
}

我的JSON文件==>

代码语言:javascript
复制
[{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"}...]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-03 17:16:35

问题出在您的sql中,so it should not insert even a single row。您正在使用日期,但尚未将它们放入quotes.Try中,如下所示:

代码语言:javascript
复制
 $filename  = "extract.json";
    $str = file_get_contents($filename);
    if($str!=null){
        /////.....rest of your code

                 $var1= $value["val1"];
                $var2 = $value["val2"];
                $var3 = $value["val3"];
                $var4 = $value["val4"];
                $var5 = $value["val5"];

                $injection_final = "INSERT INTO Table(var1,var2,var3,var4,var5,)
                VALUES($var1,$var2,'$var3',$var4,'$var5')";
                echo $injection_final."<br>";//use this query to insert

        ......
    }
票数 1
EN

Stack Overflow用户

发布于 2017-02-03 17:25:04

代码语言:javascript
复制
<?php

$json_data = '[{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"},{"val1":"1","val2":"2","val3":"0000-00-00","val4":"1","val5":"1939-05-08"}]';
//uncomment the below line to read from file
//$json_data = file_get_contents("extract.json");
$array_data = json_decode($json_data, true);

for ($i = 0; $i < count($array_data); $i++) {
    $table_column_names = "";
    $table_column_values = "";
    foreach ($array_data[$i] as $coulmn_name => $field_value) {
        $table_column_names  .= "`$coulmn_name`, ";
        $table_column_values  .= "'$field_value', ";
    }
    $table_column_names = rtrim($table_column_names, ", ");
    $table_column_values = rtrim($table_column_values, ", ");
    $sql_query = "INSERT INTO `Table` ($table_column_names) VALUES ($table_column_values)";
    //excute query here -- like if i just print the query
    echo $sql_query."\n";
}

这是你需要的..它将执行所有行输出:

代码语言:javascript
复制
INSERT INTO `Table` (`val1`, `val2`, `val3`, `val4`, `val5`) VALUES ('1', '2', '0000-00-00', '1', '1939-05-08')
INSERT INTO `Table` (`val1`, `val2`, `val3`, `val4`, `val5`) VALUES ('1', '2', '0000-00-00', '1', '1939-05-08')
INSERT INTO `Table` (`val1`, `val2`, `val3`, `val4`, `val5`) VALUES ('1', '2', '0000-00-00', '1', '1939-05-08')
INSERT INTO `Table` (`val1`, `val2`, `val3`, `val4`, `val5`) VALUES ('1', '2', '0000-00-00', '1', '1939-05-08')
INSERT INTO `Table` (`val1`, `val2`, `val3`, `val4`, `val5`) VALUES ('1', '2', '0000-00-00', '1', '1939-05-08')
票数 1
EN

Stack Overflow用户

发布于 2017-02-03 17:43:39

这一行中从$var1,$var2,$var3,$var4,$var5)";到$var1,$var2,$var3,$var4,$var5)";的简单更改

代码语言:javascript
复制
('$var1', '$var2', '$var3', '$var4', '$var5')";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42020517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档