Мне нужно получить user_id
из таблицы пользователей и вставить ее в user_id
таблицу пациентов, используя только одну форму.
Это таблицы, которые я использую: user_table
: user_id
- автоинкремент.
╔═════════╦══════════╦════════════════╦═══════════╗
║ user_id ║ level_id ║ email ║ password ║
╠═════════╬══════════╬════════════════╬═══════════╣
║ 1 ║ 5 ║ sasa@denva.com ║ sasadenva ║
║ 2 ║ 1 ║ tony@stark.com ║ tonystark ║
╚═════════╩══════════╩════════════════╩═══════════╝
Patient_table: Patient_id - автоинкремент.
+--------+---------+--------------+----------+-----------+--------+
| 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();
}
}
}
Я ожидал, что выходные данные вставят user_id из таблицы users в user_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();
}