0

I am creating an insert in my db, through a "for" to several arrays but I cannot access each element or its respective value, how can I organize it in such a way that it enters all the arrays?

my arrays are as follows and they are in a called object: jsonRequest1

Array
(
    [0] => Array
        (
            [id_question] => 1
            [id_subcategory] => 1
            [subcategory_name] => Aspectos generales del control organizacional
            [question_name] => ¿Es usted propietario de la organización?
            [active] => 1
        )

    [1] => Array
        (
            [id_question] => 2
            [id_subcategory] => 1
            [subcategory_name] => Aspectos generales del control organizacional
            [question_name] => ¿Qué rol ocupa dentro de la organización?
            [active] => 1
        )

    [2] => Array
        (
            [id_question] => 3
            [id_subcategory] => 1
            [subcategory_name] => Aspectos generales del control organizacional
            [question_name] => ¿Conoce usted las funciones del control organizacional? 

            [active] => 1
        )

    [3] => Array
        (
            [id_question] => 4
            [id_subcategory] => 1
            [subcategory_name] => Aspectos generales del control organizacional
            [question_name] => ¿Considera usted que en la organización que gerencia el control se realiza de forma previa o posterior a los hechos?
            [active] => 1
        )

    [4] => Array
        (
            [id_question] => 5
            [id_subcategory] => 1
            [subcategory_name] => Aspectos generales del control organizacional
            [question_name] => ¿Qué tipo de prácticas realiza en la organización para ejercer el control? 
            [active] => 1
        )

    [5] => Array
        (
            [id_question] => 6
            [id_subcategory] => 1
            [subcategory_name] => Aspectos generales del control organizacional
            [question_name] => ¿De manera percibe usted las inversiones realizadas en mecanismos de control para la organización?
            [active] => 1
        ))

My code in PHP is as follows so far:

$connect = new mysqli($servername, $username, $password, $dbname);
  if ($connect->connect_error) {
    die("Connection failed: " . $conn->connect_error);
  }
  $connect->set_charset("utf8");
 $jsonRequest1 = json_decode(file_get_contents("php://input"));
if (!$jsonRequest1) {
    exit("No hay datos");
}
$connect = include_once "conect.php";

$array = json_decode(json_encode($jsonRequest1),true);
echo "<pre>";
print_r($array);
echo"</pre>";
 print $jsonRequest1[$id_question];
$cadena = "INSERT INTO qrequest ($id_question, $id_subcategory)" ;


for ($i = 0; $i < count($id_question); $i++){
    $cadena.="('".$id_question[$i]."', '".$id_subcategory[$i]."'),";
}

echo json_encode(array('cadena'=> $cadena))

error in console

Please can you help me, or how else can I perform the insert? I have tried with foreach but it has not been possible either since it does not find the values.

thanks

1 Answers1

0

I readjusted the code with double foreach to enter the values ​​but I get the following error, what am I missing?

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in C:\wamp\www\hexagono\registerRequest1.php on line 53

insert($array, $connect);

 function insert($array, $connect)  
 {  

if(is_array($array))  
{  

     $values = array();  
     foreach($array as $row => $value) 
      
     {  
      foreach($value as $key => $valor){
        
    
     echo "<pre>";
     print_r("clave ".$key." valor ".$valor."<br/>");
     echo"</pre>";

     echo json_encode([
      [$key => $valor] ,
  ]);
     
          $id_question = mysqli_real_escape_string($connect, $valor[0]);  
        var_dump($valor[0]);
          $id_subcategory = mysqli_real_escape_string($connect, $valor[1]);   
          $valor[] = "('$id_question', '$id_subcategory')";  

     } 
    }
     $sql = "INSERT INTO qrequest(id_question, id_subcategory) VALUES ";  
     $sql .= implode(', ', $valor);
     var_dump($result->array); 
     mysqli_query($connect, $sql);  
}  
 }
?>