0

I want to insert the array into table.

Each name can have multiple addresses.

Name will be in table1 and all the addresses will be in another table2 corresponding to the name

my array is below:

array
(
[name] => Array
        (
            [0] => jack
            [1] => jill
            [2] =>  tom

        )
[address] => Array
        (
           [0] => array
            (

            [0] => jack_aadress1
            [1] => jack_aadress2
            [2] =>  jack_aadress3

        )   
         [1] => array(


            [0] => jill_address1
            [1] => jill_address2
            [2] => jill_address3

        ) 

         [2] => array(


            [0] => tom_address1
            [1] => tom_address2
            [2] => tom_address3

        )       


)        

Below is the one I tried:

foreach($_REQUEST['room_name'] as $key=>$value)
{
  mysql_query("insert into table1(name) values($value)");
  $insert_id = mysql_insert_id();
   foreach($_REQUEST['address'] as $key1=>$value1)
   {
       mysql_query("insert into table2(id,address) values($insert_id,$value1)");

   }
}
1
  • Mysql is deprecated please switch to mysqli or pdo. Commented Apr 21, 2014 at 18:51

2 Answers 2

1

You're not drilling deep enough into the second array. It should be:

foreach($_REQUEST['name'] as $key=>$value)
{
    $value = mysql_real_escape_string($value);
    mysql_query("insert into table1(name) values('$value')");
    foreach($_REQUEST['address'][$key] as $key1=>$value1)
    {
        $value1 = mysql_real_escape_string($value1);
        mysql_query("insert into table2(id,address) values(LAST_INSERT_ID(),'$value1')");

    }
}
Sign up to request clarification or add additional context in comments.

1 Comment

I've added escaping and proper quoting to the queries. But it would be better if you converted to mysqli or PDO so you could use parametrized queries instead of variable substitution.
0
foreach($_REQUEST['name'] as $key=>$value)
{
  mysql_query("insert into table1(name) values('$value')");
  $insert_id = mysql_insert_id();
   foreach($_REQUEST['address'][$key] as $key1=>$value1)
   {
       mysql_query("insert into table2(id,address) values($insert_id, '$value1')");

   }
}

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.