I want to insert data into two different tables in mysql database at the same time but my data is only inserted into the user_signup table and not into the other table. This is my codes:
<?php
//If user is a ministry head
if($access_level == 'ministry_head')
{
$sql="INSERT INTO ministry_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$_SESSION['eemail'] = $eemail;
header('Location: ministry_head_page.php');
}
//If user is a regional head
else if($access_level == 'regional_head')
{
$sql="INSERT INTO regional_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$_SESSION['eemail'] = $eemail;
header('Location: regional_head_page.php');
}
//if user is general user
else if($access_level == 'general_user')
{
$sql="INSERT INTO general_user (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$_SESSION['eemail'] = $eemail;
header('Location: general_user_page.php');
}
//if user is car company
else if ($access_level == 'car_company')
{
$sql="INSERT INTO car_company (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$sql="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con) VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$_SESSION['eemail'] = $eemail;
header('Location: car_company_page.php');
}
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "";
mysqli_clos
e($con);
}
?>
You assign two different strings to one variable:
$sql="INSERT INTO car_company ...";
$sql="INSERT INTO user_signup ...";
Second row overwrites the first one, hence it'll not execute. As a workaround you could do:
$sql1="INSERT INTO car_company ...";
$sql2="INSERT INTO user_signup ...";
followed by
mysqli_query($con,$sql1);
mysqli_query($con,$sql2);
with appropriate error checking and all.
$sql="INSERT INTO ministry_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con)
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
$sql .="INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con)
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con')";
OR
$sql = "INSERT INTO ministry_head (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con)
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con'); INSERT INTO user_signup (eemail,mobile_number,fname,mname,lname,access_level,region_name,district_name,ssn,district_pass,pass_con)
VALUES ('$eemail','$mobile_number','$fname','$mname','$lname','$access_level','$region_name','$district_name','$ssn','$district_pass','$pass_con');";
multi_query($conn,$sql);
you need to use mysqli_* for this. assume $conn is your mysqli connection
http://www.php.net/manual/en/mysqli.quickstart.multiple-statement.php