Jump to content

Inserting data into two tables in php


raazaq

Recommended Posts

Hi,

 

I am new to this forum and php. I have been trying to insert data into two separate tables but so far unable to do so. With the code I might be able to explain it bit clearer.

 

I have got two tables user and registeruser with the following columns; user (customerid (pk), name, telephone, email, address, zip) and registeruser (username, password, customerid). I am trying to register user by inserting data into tables user and userid. my code is as follows:

 

// Insert data into mysql

 

$sql="INSERT INTO user (userid, name, telephone, email, address, zip)VALUES(NULL, '$name', '$telephone', '$email', '$address', '$zipcode')";

$result=mysql_query($sql);

 

$sql = "INSERT INTO registeruser (username, password, userid)VALUES('$username', '$password', NULL)";

$result = mysql_query( $sql);

 

But this doesnot work. Any suggestions, how to insert data into two separate tables using PHP?

 

Thanks

Link to comment
https://forums.phpfreaks.com/topic/96902-inserting-data-into-two-tables-in-php/
Share on other sites

Personally I don't use variables when I use mysql_query()

 

Also, you're using the same variables twice

 

Try this:

$sql1 = "INSERT INTO user (userid, name, telephone, email, address, zip) VALUES (NULL, '$name', '$telephone', '$email', '$address', '$zipcode')";
mysql_query( $sql1 );

$sql2 = "INSERT INTO registeruser (username, password, userid) VALUES ('$username', '$password', NULL)";
mysql_query( $sql2 );

Thanks for all your replies  :).

 

I have tried to use both options posted above (i.e. die(mysql_error()); and mysql_query( $sql ) function) and they seem to improve the scenario. Apart from userid column in table user and registeruser. It is a primary key in user table and foreign in other and it set to 'auto increment'. But its not incrementing. My new code is as below:

 

$sql1="INSERT INTO user (userid, name, telephone, email, address, zip)VALUES(NULL, '$name', '$telephone', '$email', '$address', '$zipcode')";
mysql_query($sql1) or die(mysql_error());

$sql2 = "INSERT INTO registeruser (username, password, userid)VALUES('$username', '$password', NULL)";
mysql_query( $sql2) or die(mysql_error());

Looks like you'll want to use PHP's mysql_insert_id() function in the second statement.

 

It will use the ID from the first query and use it in the second query.

 

$sql1 = "INSERT INTO user (userid, name, telephone, email, address, zip) VALUES (NULL, '$name', '$telephone', '$email', '$address', '$zipcode')";
mysql_query( $sql1 );

$sql2 = "INSERT INTO registeruser (username, password, userid) VALUES ('$username', '$password', mysql_insert_id())";
mysql_query( $sql2 );

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.