Karthik Saravanan
Karthik Saravanan

Reputation: 158

I want to insert two different table row values into single table,

l have two table "member_registration" and "mebership_details" get row values from two tables using foreign key and move to another single table "existing_members", original row values to be delete.

$query=mysql_query("existing_member(member_id,member_name,dob,gender,address,city,state,phone,email,height,weight,bmi,bp,medical,image_path,joining_date,)
SELECT member_id,member_name,dob,gender,address,city,state,phone,email,height,weight,bmi,bp,medical,image_path,joining_date FROM member_registration
WHERE member_id='".$memberid."'"); 
 $query2=mysql_query("INSERT INTO existing_member (member_type) SELECT membership_type FROM membership_details
WHERE member_id='".$memberid."'");

if($query and $query2)
{ //echo "connected";
$sql=mysql_query("DELETE FROM member_registration WHERE member_id='".$memberid."'");
$sql1=mysql_query("delete from membership_details where member_id='".$memberid."'");
    echo "<script>
                alert('Data Deleted Successfully');
                window.location.href='close_member.php';
                </script>"; 
} 

this is my query, single query but how to execute both query to insert values from two tables into single table,

Upvotes: 0

Views: 95

Answers (4)

Karthik Saravanan
Karthik Saravanan

Reputation: 158

suchit, i tried this code,

`<?php
 ini_set('display_errors', 0);
 include 'connection/db_connection.php';
 $memberid=$_POST['memberid'];
  $query=mysql_query("INSERT INTO existing_membe(member_id,member_name,dob,gender,address,city,state,phone,email,height,weight,bmi,bp,medical,image_path,joining_date)
SELECT member_id,member_name,dob,gender,address,city,state,phone,email,height,weight,bmi,bp,medical,image_path,joining_date FROM member_registration
WHERE member_id='".$memberid."'" ); 

/*
$query2=mysql_query("INSERT INTO existing_member (membership_type) SELECT membership_type  FROM membership_details
WHERE member_id='".$memberid."'"); */

$query2=mysql_query("INSERT INTO existing_member (membership_type)
 SELECT a.membership_type as membership_type FROM membership_details a
 INNER JOIN member_registration c ON c.member_id = a.member_id, c.member_name=a.member_name
where a.member_id='".$memberid."'");

if($quer and $query2)
{ 
    $sql=mysql_query("DELETE FROM member_registration WHERE member_id='".$memberid."'");
    $sql1=mysql_query("delete from membership_details where member_id='".$memberid."'");

    echo "<script>
                alert('Data Deleted Successfully');
                window.location.href='close_member.php';
                </script>"; 
} 
else
{
echo "User Data Already Exist";
}

?>`

Upvotes: 0

Suchit kumar
Suchit kumar

Reputation: 11859

try using something like this with join:

"INSERT INTO existing_member (member_type)
 SELECT a.membership_type as member_type FROM membership_details a
 INNER JOIN member_registration c ON c.member_id = a.member_id
 where a.member_id='".$memberid."'"

Upvotes: 0

krisph
krisph

Reputation: 697

try writing your query like so:

INSERT INTO Table ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value1, Value2 )

this should insert multiple records

if the table is always going to have the two values in the table and you want them in two columns you could do somthing like this:

$query2=mysql_query("INSERT INTO existing_member (member_type) VALUES (SELECT membership_type FROM membership_details WHERE member_id='".$memberid."' LIMIT 1 OFFSET 0, SELECT membership_type FROM membership_details WHERE member_id='".$memberid."' LIMIT 1 OFFSET 1)");

Just Re-Read the question:

$query2=mysql_query("INSERT INTO existing_member (member_id,member_name,dob,gender,address,city,state,phone,email,height,weight,bmi,bp,medical,image_path,joining_date) VALUES (SELECT member_id,member_name,dob,gender,address,city,state,phone,email,height,weight,bmi,bp,medical,image_path,joining_date FROM member_registration WHERE member_id='".$memberid."')");

Is this what you are after?

Upvotes: 0

daotan
daotan

Reputation: 61

You can try union

example below

insert into table1(col1, col2, col3) (
select col1 as col1, col2 as col2, col3 as col3 from table2
union
select col1 as col1, col2 as col2, col3 as col3 from table3)

careful on the id (primary key or unique) it might already exist or you can use the insert ignore

hope this will help

Upvotes: 1

Related Questions