0

I am trying to map JSON files into a mysql database I want based on the value of a particular element in JSON to if it is equal to that value put the entries in the database but when I run my application it returns everything

php for table 1 which is supposed to check if resource type is equal to instance put entries into table :

<?php 


$con=mysqli_connect("localhost","root","","json_map");
$response = array(); 
$res=array();
$result='' ;
foreach(glob('C:\xampp\htdocs\laravel\awsconfig\app\views\*.json') as $filename)
{
    $json = file_get_contents($filename);

    if($json!=null)
    { 
        $decoded=json_decode($json,true); 
        //$decode= var_dump($decoded); 
        //$ss=$decode["array"]; 
        //echo $decoded['number']; 

        if(is_array($decoded["configurationItems"])) 
        { 
            foreach($decoded["configurationItems"] as $configurationItems) 
            {
                //for($i=0;$i>sizeof($decoded["configurationItems"]);$i++) 

                $cfi=$configurationItems;
                if(isset($cfi["resourceType"]["AWS::EC2::Instance"]));

                if(isset($cfi["configurationItemVersion"]) && isset($cfi["configurationItemCaptureTime"])  && isset($cfi["configurationStateId"])&& isset($cfi["awsAccountId"]) && isset($cfi["awsAccountId"]) )
                {
                        $configurationItemVersion=$configurationItems["configurationItemVersion"]; 
                          echo "<br />","configuration_Item_Version:",$configurationItemVersion,"<br />"; 
                        $configurationItemCaptureTime=$configurationItems["configurationItemCaptureTime"]; 
                          echo "configurationItemCaptureTime:",$configurationItemCaptureTime,"<br />"; 
                        $configurationStateId=$configurationItems["configurationStateId"]; 
                          echo "configurationStateId:",$configurationStateId,"<br />"; 
                        $awsAccountId=$configurationItems["awsAccountId"]; 
                          echo "awsAccountId:",$awsAccountId,"<br />"; 
                        $configurationItemStatus=$configurationItems["configurationItemStatus"]; 
                          echo "configurationItemStatus:",$configurationItemStatus,"<br />"; 
                        $resourceId=$configurationItems["resourceId"]; 
                          echo "resourceId:",$resourceId,"<br />"; 
                        $configurationStateMd5Hash=$configurationItems["configurationStateMd5Hash"]; 
                          echo "configurationStateMd5Hash:",$configurationStateMd5Hash,"<br />"; 
                        $resourceType=$configurationItems["resourceType"]; 
                          echo "resourceType:",$resourceType,"<br />";   
                        $ARN= isset($cfi["ARN"]) ? $cfi["ARN"] : ''; 
                          echo "ARN:",$ARN,"<br />";
                        $awsRegion= isset($cfi["awsRegion"]) ? $cfi["awsRegion"] : ''; 
                          echo "awsRegion:",$awsRegion,"<br />";  
                        $availabilityZone= isset($cfi["availabilityZone"]) ? $cfi["availabilityZone"] : ''; 
                          echo "availabilityZone:",$availabilityZone,"<br />";
                        $resourceCreationTime= isset($cfi["resourceCreationTime"]) ? $cfi["resourceCreationTime"] : ''; 
                          echo "resourceCreationTime:",$resourceCreationTime,"<br />";



                       $result = mysqli_query($con, "INSERT INTO     configuration_item(configuration_item_version,configuration_item_capture_time,configuration_state_id, aws_account_id, configuration_item_status, resource_id, arn, aws_region, availability_zone,configuration_state_md5_hash, resource_type, resource_creation_time)

                       VALUES('$configurationItemVersion','$configurationItemCaptureTime','$configurationStateId','$awsAccountId','$configurationItemStatus','$resourceId','$ARN','$awsRegion','$availabilityZone','$configurationStateMd5Hash','$resourceType','$resourceCreationTime' )")or die("Insert Failed ".((is_object($con)) ? mysqli_error($con) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));; 

    }


                    // check if row inserted or not 
                    if ($result)
                    { 
                        // successfully inserted into database 
                        $response["code"] = 1; 
                        $response["message"] = "successfully updated configuration items "; 

                        // echoing JSON response 
                        echo json_encode($response); 
                    }
                    else
                    { 
                        echo mysql_error();
                        // failed to insert row 
                        $response["code"] = 2; 
                        $response["message"] = "Oops! An error occurred."; 

                        // echoing JSON response 
                        echo json_encode($response); 
                    } 
                } 
            } 
        }
    }

?>

php for table two which is supposed to do as above but where equal to volume into a different table :

<?php 


$con=mysqli_connect("localhost","root","","json_map");
$response = array(); 
$res=array();
$result='' ;
foreach(glob('C:\xampp\htdocs\laravel\awsconfig\app\views\*.json') as $filename)
{
    $json = file_get_contents($filename);

    if($json!=null)
    { 
        $decoded=json_decode($json,true); 
        //$decode= var_dump($decoded); 
        //$ss=$decode["array"]; 
        //echo $decoded['number']; 

        if(is_array($decoded["configurationItems"])) 
        { 
            foreach($decoded["configurationItems"] as $configurationItems) 
            {
                //for($i=0;$i>sizeof($decoded["configurationItems"]);$i++) 

                $cfi=$configurationItems;


                if(isset($cfi["resourceType"]["AWS::EC2::Volume"]));

                {
                        $configurationItemVersion=$cfi["configurationItemVersion"]; 
                          echo "<br />","configuration_Item_Version:",$configurationItemVersion,"<br />"; 
                        $configurationItemCaptureTime=$cfi["configurationItemCaptureTime"]; 
                          echo "configurationItemCaptureTime:",$configurationItemCaptureTime,"<br />"; 
                        $configurationStateId=$cfi["configurationStateId"]; 
                          echo "configurationStateId:",$configurationStateId,"<br />"; 
                        $awsAccountId=$cfi["awsAccountId"]; 
                          echo "awsAccountId:",$awsAccountId,"<br />"; 
                        $configurationItemStatus=$cfi["configurationItemStatus"]; 
                          echo "configurationItemStatus:",$configurationItemStatus,"<br />"; 
                        $resourceId=$cfi["resourceId"]; 
                          echo "resourceId:",$resourceId,"<br />"; 
                        $configurationStateMd5Hash=$cfi["configurationStateMd5Hash"]; 
                          echo "configurationStateMd5Hash:",$configurationStateMd5Hash,"<br />"; 
                        $resourceType=$cfi["resourceType"]; 
                          echo "resourceType:",$resourceType,"<br />";   
                        $ARN= isset($cfi["ARN"]) ? $cfi["ARN"] : ''; 
                          echo "ARN:",$ARN,"<br />";
                        $awsRegion= isset($cfi["awsRegion"]) ? $cfi["awsRegion"] : ''; 
                          echo "awsRegion:",$awsRegion,"<br />";  
                        $availabilityZone= isset($cfi["availabilityZone"]) ? $cfi["availabilityZone"] : ''; 
                          echo "availabilityZone:",$availabilityZone,"<br />";
                        $resourceCreationTime= isset($cfi["resourceCreationTime"]) ? $cfi["resourceCreationTime"] : ''; 
                          echo "resourceCreationTime:",$resourceCreationTime,"<br />";

                        {



    }




                       $result = mysqli_query($con, "INSERT INTO     cfi_vol(configuration_item_version,configuration_item_capture_time,configuration_state_id, aws_account_id, configuration_item_status, resource_id, arn, aws_region, availability_zone,configuration_state_md5_hash, resource_type, resource_creation_time)

                       VALUES('$configurationItemVersion','$configurationItemCaptureTime','$configurationStateId','$awsAccountId','$configurationItemStatus','$resourceId','$ARN','$awsRegion','$availabilityZone','$configurationStateMd5Hash','$resourceType','$resourceCreationTime' )")or die("Insert Failed ".((is_object($con)) ? mysqli_error($con) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));; 





                    // check if row inserted or not 
                    if ($result)
                    { 
                        // successfully inserted into database 
                        $response["code"] = 1; 
                        $response["message"] = "successfully updated configuration items volume"; 

                        // echoing JSON response 
                        echo json_encode($response); 
                    }
                    else
                    { 
                        echo mysql_error();
                        // failed to insert row 
                        $response["code"] = 2; 
                        $response["message"] = "Oops! An error occurred."; 

                        // echoing JSON response 
                        echo json_encode($response); 
                    } 
                } 
            } 
        }
    }
}
?> 

unfortunately when I run this I get everything returned

3
  • can you share some snippet from json file. Commented Jan 30, 2015 at 12:55
  • 1
    why you put semicolon at the end of if statement that's error Commented Jan 30, 2015 at 12:56
  • ` I get everything returned` - what does it mean? first part inserts how many records? records are different? second part inserts records? what does it mean ` I get everything returned` Commented Jan 30, 2015 at 14:35

1 Answer 1

1

Please remove semicolon after if statement

   if(isset($cfi["resourceType"]["AWS::EC2::Volume"]))

Also check below line.

   if(isset($cfi["resourceType"]["AWS::EC2::Instance"]));
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.