diank
diank

Reputation: 638

PHP MySQL Insert array

I'm having trouble with inserting the values from this array. Here example:

$arr = json_decode($_POST['dynfields'], true);
    //{"dynfields":{"dynfields[0][DescRepair]":"Desc repair","dynfields[0][NestParts]":"Parts","dynfields[0][EdPrice]":"10","dynfields[0][DateRepair]":"2015-07-20","dynfields[1][DescRepair]":"Desc repair","dynfields[1][NestParts]":"Parts","dynfields[1][EdPrice]":"5","dynfields[1][DateRepair]":"2015-07-20"}}

    foreach ($arr as $key => $fieldArray ) {
        foreach($fieldArray as $k => $v) {
            echo $k . " - " . $v . "<br>"; // result: dynfields[0][DescRepair] - Desc repair
                                            dynfields[0] [NestParts] - Parts
                                            dynfields[0][EdPrice] - 10
                                            dynfields[0][DateRepair] - 2015-07-20
                                            dynfields[1][DescRepair] - Desc repair
                                            dynfields[1][NestParts] - Parts
                                            dynfields[1][EdPrice] - 5
                                            dynfields[1][DateRepair] - 2015-07-20

        }
        //$query = mysqli_query($mysqli, "INSERT INTO repair (DescRepair, NestParts, EdPrice, DateRepair) VALUES ('?', '?', '?', '?')") or die(mysqli_error($mysqli));  
    }

This is my code, but I don't know how to insert the value in db. Can you give me any suggestions. Thanks.

Upvotes: 2

Views: 109

Answers (2)

I did not understand very well your code, but at first your json is bad, on post, this is an example of right json:

{
"dynfields": [
    {
        "DescRepair": "Desc repair",
        "NestParts": "Parts",
        "EdPrice": "10",
        "DateRepair": "2015-07-20"
    },
    {
        "DescRepair": "Desc repair",
        "NestParts": "Parts",
        "EdPrice": "5",
        "DateRepair": "2015-07-20"
    }
  ]
}

Then you can make a foreach with the dynfields data:

$myvar = json_decode($json,true);
$data = $myvar['dynfields'];


    foreach(array_keys($data) as $index){
        var_dump($data[$index]);
    }

then you will get something like this (var_dump):

 array (size=4)
      'DescRepair' => string 'Desc repair' (length=11)
      'NestParts' => string 'Parts' (length=5)
      'EdPrice' => string '10' (length=2)
      'DateRepair' => string '2015-07-20' (length=10)
 array (size=4)
      'DescRepair' => string 'Desc repair' (length=11)
      'NestParts' => string 'Parts' (length=5)
      'EdPrice' => string '5' (length=1)
      'DateRepair' => string '2015-07-20' (length=10)

Upvotes: 1

Ehab Eldeeb
Ehab Eldeeb

Reputation: 720

$query = mysqli_query($mysqli, "INSERT INTO repair (DescRepair, NestParts, EdPrice, DateRepair) VALUES ('?', '?', '?', '?')") or die(mysqli_error($mysqli))

relace each ? with {$arr['xxxxx']} Where xxxxx are your array keys

make sure to well-escape the variables to prevent SQL Injection

Hint: you can use PDO or prepared statements

Upvotes: 0

Related Questions