Php 如何使用一个表单将id从另一个表插入到一个表中?
我必须从用户表中获取Php 如何使用一个表单将id从另一个表插入到一个表中?,php,html,database,mysqli,Php,Html,Database,Mysqli,我必须从用户表中获取user\u id,并仅使用一个表单将其插入患者表的user\u id 以下是我正在使用的表格: user\u table:user\u id是自动递增的 ╔═════════╦══════════╦════════════════╦═══════════╗ ║ user_id ║ level_id ║ email ║ password ║ ╠═════════╬══════════╬════════════════╬═══════════╣ ║ 1
user\u id
,并仅使用一个表单将其插入患者表的user\u id
以下是我正在使用的表格:
user\u table
:user\u id
是自动递增的
╔═════════╦══════════╦════════════════╦═══════════╗
║ user_id ║ level_id ║ email ║ password ║
╠═════════╬══════════╬════════════════╬═══════════╣
║ 1 ║ 5 ║ sasa@denva.com ║ sasadenva ║
║ 2 ║ 1 ║ tony@stark.com ║ tonystark ║
╚═════════╩══════════╩════════════════╩═══════════╝
+--------+---------+--------------+----------+-----------+--------+
| pat_id | user_id | name | address | number | sex |
| 1 | 1 | sasa mindred | manhatan | 987654329 | female |
| 2 | 2 | tony stark | new york | 123456789 | male |
+--------+---------+--------------+----------+-----------+--------+
患者表:患者id是自动递增的
╔═════════╦══════════╦════════════════╦═══════════╗
║ user_id ║ level_id ║ email ║ password ║
╠═════════╬══════════╬════════════════╬═══════════╣
║ 1 ║ 5 ║ sasa@denva.com ║ sasadenva ║
║ 2 ║ 1 ║ tony@stark.com ║ tonystark ║
╚═════════╩══════════╩════════════════╩═══════════╝
+--------+---------+--------------+----------+-----------+--------+
| pat_id | user_id | name | address | number | sex |
| 1 | 1 | sasa mindred | manhatan | 987654329 | female |
| 2 | 2 | tony stark | new york | 123456789 | male |
+--------+---------+--------------+----------+-----------+--------+
我把这张桌子的名字缩短了
$sql = "SELECT email FROM users WHERE email=?";
$stmt =mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../auth/register.php?error=sqlerror");
exit();
}else{
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultcheck= mysqli_stmt_num_rows($stmt);
if($resultcheck > 0) {
header("Location: ../auth/register.php?error=emailtaken&last_name=".$last."&first_name=".$first."&middle_name=".$middle."&sex=".$sex."");
exit();
}else{
$sql= "INSERT INTO users (level_id, email, password, created_at) VALUES (?, ?, ?, now())";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
header("Location: ../auth/register.php?error=sqlerror");
exit();
}else{
$hashedPwd = password_hash($password, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, "iss", $lvl, $email, $hashedPwd);
$user_id = mysqli_insert_id($conn);
$sqli = "INSERT INTO patients (user_id, last_name, first_name, middle_name, sex) VALUES ($user_id, ?, ?, ?, ?)";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
header("Location: ../auth/register.php?error=sqlerror");
exit();
}else{
mysqli_stmt_bind_param($stmt, "ssss", $last, $first, $middle, $sex);
mysqli_stmt_execute($stmt);
}
mysqli_stmt_execute($stmt);
header("Location: ../auth/register.php?signup=success".$conn->insert_id."");
exit();
}
}
}
我希望输出将users表中的user\u id插入patients表的user\u id
如果有人想知道,这就是已解决的代码
else{
$sql = "SELECT email FROM users WHERE email=?";
$stmt =mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../auth/register.php?error=sqlerror");
exit();
}else{
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultcheck= mysqli_stmt_num_rows($stmt);
if($resultcheck > 0) {
header("Location: ../auth/register.php?error=emailtaken&last_name=".$last."&first_name=".$first."&middle_name=".$middle."&sex=".$sex."");
exit();
}else{
$sql= "INSERT INTO users (level_id, email, password, created_at) VALUES (?, ?, ?, now())";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
header("Location: ../auth/register.php?error=sqlerror");
exit();
}else{
$hashedPwd = password_hash($password, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, "iss", $lvl, $email, $hashedPwd);
mysqli_stmt_execute($stmt);
$user_id = mysqli_insert_id($conn);
$sqli = "INSERT INTO patients (user_id, last_name, first_name, middle_name, sex) VALUES ($user_id, ?, ?, ?, ?)";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sqli)){
header("Location: ../auth/register.php?error=sqlerror");
exit();
}else{
mysqli_stmt_bind_param($stmt, "ssss", $last, $first, $middle, $sex);
}
mysqli_stmt_execute($stmt);
header("Location: ../auth/register.php?signup=success".$conn->insert_id."");
exit();
}
您正在尝试在插入(执行)之前获取插入的id 首先,您需要执行它:
mysqli_stmt_execute($stmt);
将其添加到:
$user_id = mysqli_insert_id($conn);