Javascript 在MySQL中将表的一行链接到另一个表的多行
我有以下表格: 提交表单后,个人详细信息将插入个人表,书籍详细信息将插入书籍表。我想通过一个唯一的id将一个个人表行链接到book表中的多行(因为它是用同一个查询插入的),这样我可以在以后确定这些书籍与此人相关 这是我的PHP和MySQL脚本:Javascript 在MySQL中将表的一行链接到另一个表的多行,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我有以下表格: 提交表单后,个人详细信息将插入个人表,书籍详细信息将插入书籍表。我想通过一个唯一的id将一个个人表行链接到book表中的多行(因为它是用同一个查询插入的),这样我可以在以后确定这些书籍与此人相关 这是我的PHP和MySQL脚本: $mysqli = new mysqli($host,$user,$password,$database); $users_firstname = $_POST['firstname']; $users_middlename = $_POST['mi
$mysqli = new mysqli($host,$user,$password,$database);
$users_firstname = $_POST['firstname'];
$users_middlename = $_POST['middlename'];
$users_lastname = $_POST['lastname'];
$users_gender= $_POST['gender'];
$users_location= $_POST['location'];
$users_email= $_POST['email'];
$users_mobile= $_POST['mobile'];
$query = "INSERT INTO personaldetails(FirstName ,MiddleName,LastName,
Gender,Location,Email,Mobile) VALUES ('$users_firstname',
'$users_middlename', '$users_lastname', '$users_gender','$users_location','$users_email','$users_mobile');";
foreach($_POST['booktitle'] as $key => $bookTitle) {
$bookTitle = mysqli_real_escape_string($mysqli, $bookTitle);
$bookGenre = mysqli_real_escape_string($mysqli, $_POST['bookgenre'][$key]);
$bookWriter = mysqli_real_escape_string($mysqli, $_POST['bookwriter'][$key]);
$bookDescription = mysqli_real_escape_string($mysqli, $_POST['bookdescription'][$key]);
$query .= "INSERT INTO bookdetails(BookTitle ,BookGenre,BookWriter,
BookDescription) VALUES('$bookTitle',
'$bookGenre', '$bookWriter', '$bookDescription');";
}
$result = mysqli_multi_query($mysqli, $query);
一个可能的解决方案是使用 但是您还必须在book table中创建一个额外的列来存储用户id,以便将一本书与一个用户关联起来,让它成为user\u id(它将存储我们将通过
mysqli\u insert\u id()
获得的新创建用户的id)
您还必须单独执行查询以获取新插入的用户Id
因此,代码将类似于-
$mysqli = new mysqli($host,$user,$password,$database);
$users_firstname = $_POST['firstname'];
$users_middlename = $_POST['middlename'];
$users_lastname = $_POST['lastname'];
$users_gender= $_POST['gender'];
$users_location= $_POST['location'];
$users_email= $_POST['email'];
$users_mobile= $_POST['mobile'];
$user_query = "INSERT INTO personaldetails(FirstName ,MiddleName,LastName,
Gender,Location,Email,Mobile) VALUES ('$users_firstname',
'$users_middlename', '$users_lastname', '$users_gender','$users_location','$users_email','$users_mobile');";
//execute the user query
$result = mysqli_query($mysqli, $user_query);
//get the user id of newly inserted user
$user_id = mysqli_insert_id($mysqli);
foreach($_POST['booktitle'] as $key => $bookTitle) {
$bookTitle = mysqli_real_escape_string($mysqli, $bookTitle);
$bookGenre = mysqli_real_escape_string($mysqli, $_POST['bookgenre'][$key]);
$bookWriter = mysqli_real_escape_string($mysqli, $_POST['bookwriter'][$key]);
$bookDescription = mysqli_real_escape_string($mysqli, $_POST['bookdescription'][$key]);
//use the user id here to relate it with the book
$book_query = "INSERT INTO bookdetails(BookTitle ,BookGenre,BookWriter,
BookDescription, user_id) VALUES('$bookTitle',
'$bookGenre', '$bookWriter', '$bookDescription', '$user_id');";
//execute the query for book
$result = mysqli_query($mysqli, $book_query);
}
显示此错误,解析错误:语法错误,意外的“foreach”(T_foreach)非常感谢@manoj:)虽然它不是唯一的,但我现在有了基本的想法,我将这样做。谢谢