在 PHP 和 MySQL 中如何根据另一个表格(称为“doctor_timings”)的可用日期来制定预约?

时间:2021-08-12 04:42:35

标签: php mysql

我是一个新手,第一次尝试使用 Stack Overflow 来获取答案(抱歉)。

我有两个表,一个叫做doctor_timings表,其中有可用日期;另一个叫做patientappointment表,我需要在提取的日期从输入类型日期结束或等于doctor_timings表中的可用日期时才能预约。但是,如果条件为真,我尝试使用以下代码将其插入到appointment表中:

sql = "INSERT INTO appointment WHERE '$appointment_day' = available_day ";
$Result = $Conexion -> query($sql);

在查询中,可用日期是从表doctor_timings(可用日期)中获取的数据。但是,我不确定如何正确地组合查询以使预约条件与输入类型日期提取后的日期相等并将其插入到appointment表中。请帮助我编写正确的查询来完成这个任务,谢谢您的帮助。

** 这是我的 PHP 代码(西班牙语):**

<?php
if(!isset($_POST["submit"])){

    require 'conexion.php';

    $nombre = $_POST['name'];

    $fecha_cita = $_POST['fecha_cita'];

    $dia_cita = date("D", strtotime($fecha_cita));

    $hora_cita = $_POST['hora'];

    $telefono = $_POST['telefono'];

    $ciudad = $_POST['ciudad'];

    $correo = $_POST['email'];

    $clave = $_POST['clave'];

    $fecha_nacimiento = $_POST['fecha_nacimiento'];

    $doctor = $_POST['doctor'];

    $tratamiento = $_POST['tratamiento'];

    $mensaje = $_POST['mensaje'];

    $sql_verificar_existencia_usuario = "SELECT * FROM patient WHERE loginid='$correo'";

    $Result_verificar_existencia_usuario = $Conexion -> query($sql_verificar_existencia_usuario)or die($Conexion -> error);

    if(mysqli_num_rows($Result_verificar_existencia_usuario) >= 1){

        //header('location: index.php?error=1');

    }else{

        include 'conexion.php';

        $sql_registro_paciente = "INSERT INTO patient(
                                    patientname,
                                    admissiondate,
                                    admissiontime,
                                    historia_num,
                                    historia,
                                    prescripcion_medica,
                                    tratamiento,
                                    mobileno,
                                    city,
                                    pincode,
                                    loginid,
                                    password,
                                    bloodgroup,
                                    dob,
                                    status,
                                    delete_status)
                                    VALUES(
                                    '$nombre',
                                    '$fecha_cita',
                                    '$hora_cita',
                                    '',
                                    '',
                                    '',
                                    '',
                                    '$telefono',
                                    '$ciudad',
                                    '',
                                    '$correo',
                                    '$clave',
                                    '',
                                    '$fecha_nacimiento',
                                    'Active',
                                    '0'
                                    )";

        $Result_registro_paciente = $Conexion -> query($sql_registro_paciente)or die($Conexion -> error);

        if($Result_registro_paciente == true){

            include 'conexion.php';

            $sql_traer_paciente_registrado = "SELECT * FROM patient WHERE loginid='$correo'";

            $Result_paciente_registrado = $Conexion -> query($sql_traer_paciente_registrado)or die($Conexion -> error);

            while($PacienteRegistrado = $Result_paciente_registrado -> fetch_assoc()){

                $id_paciente = $PacienteRegistrado['patientid'];

            }

            if($Result_paciente_registrado == true){

                //Traemos los dias libres del odontologo
                $sql_traer_dias_libres_odontologo = "SELECT available_day FROM doctor_timings WHERE doctorid='2'";

                $Result_traer_dias_libres_odontologo = $Conexion -> query($sql_traer_dias_libres_odontologo)or die($Conexion -> error);

                while($DiasLibresOdontologo = $Result_traer_dias_libres_odontologo -> fetch_assoc()){

                     $DiasLibres = $DiasLibresOdontologo[4];

                }
                //Evaluamos el dia de la cita si coincide con los dias libres del odontologo

                $sql_crear_cita_paciente = "INSERT INTO appointment(
                                                appointmenttype,
                                                patientid,
                                                roomid,
                                                departmentid,
                                                appointmentdate,
                                                appointmenttime,
                                                doctorid,
                                                status,
                                                app_reason,
                                                detalles_sintomas,
                                                delete_status
                                                )VALUES(
                                                'odontologia',
                                                '$id_paciente',
                                                '0',
                                                '1',
                                                '$fecha_cita',
                                                '$hora_cita',
                                                '2',
                                                'Active',
                                                '$tratamiento',
                                                '$mensaje',
                                                '0'
                                                )";

                $Result_crear_cita_paciente = $Conexion -> query($sql_crear_cita_paciente)or die($Conexion -> error);

                //header('location: index.php?exito=1');

            }

        }else{

        }

    }

}
?>

这是doctor_timings表(图片): enter image description here

0 个答案:

没有答案