PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
-- Создание таблицы врачей CREATE TABLE doctors ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, specialty VARCHAR(100) NOT NULL ); -- Создание таблицы пациентов CREATE TABLE patients ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, age INT NOT NULL, gender VARCHAR(10) NOT NULL ); -- Создание таблицы пожеланий пациентов CREATE TABLE patient_wishes ( id INT AUTO_INCREMENT PRIMARY KEY, patient_id INT NOT NULL, specialty VARCHAR(100) NOT NULL, wish_text TEXT, FOREIGN KEY (patient_id) REFERENCES patients(id) ); -- Создание таблицы записей пациентов к врачам CREATE TABLE patient_appointments ( id INT AUTO_INCREMENT PRIMARY KEY, patient_id INT NOT NULL, doctor_id INT NOT NULL, appointment_date DATE NOT NULL, FOREIGN KEY (patient_id) REFERENCES patients(id), FOREIGN KEY (doctor_id) REFERENCES doctors(id) );
Copy Clear
Copy Format Clear
<?php // Предположим, у нас есть массивы с данными о пациентах и врачах $patients = array( array('name' => 'Иванов', 'age' => 30, 'gender' => 'М'), array('name' => 'Петрова', 'age' => 25, 'gender' => 'Ж'), array('name' => 'Суркин', 'age' => 12, 'gender' => 'М') // ... другие пациенты ); $query = ''; for($i = 0, $cnt = count($patients); $i < $cnt; $i++) $query .= '"' . join('", "', $patients[$i]) . '", '; echo 'INSERT INTO `patients` (`' . join('`, `', array_keys($patients[0])) . '`) VALUES (' . rtrim($query, ', )'); // Вставляем запись в базу данных $q = mysqli_prepare( $mysqli, "INSERT INTO `patient_appointments` (`patient_id`, `doctor_id`, `appointment_date`) VALUES (?, ?, ?)" ); $q->bind_param("iis", $patientId, $doctorId, $appointmentDate); $q->execute(); echo ' doc '; $doctors = array( array('name' => 'Масалимов', 'specialty' => 'Терапевт'), array('name' => 'Фатхуллин', 'specialty' => 'Хирург'), array('name' => 'Васнецов', 'specialty' => 'Ортодонт') // ... другие врачи ); $query = ''; for($i = 0, $cnt = count($doctors); $i < $cnt; $i++) $query .= '("' . join('", "', $doctors[$i]) . '"), '; echo 'INSERT INTO `doctors` (`' . join('`, `', array_keys($doctors[0])) . '`) VALUES ' . rtrim($query, ', '); // Функция для случайного выбора врача function getRandomDoctorId($doctors) { $randomIndex = array_rand($doctors); if (isset($doctors[$randomIndex])) { return $doctors[$randomIndex]['id']; } else { // Если массив пустой, вернуть null или выбросить исключение // return null; throw new Exception("Array is empty"); } } // Заполнение таблицы записей пациентов к врачам foreach ($patients as $patient) { $patientId = 1; // получаем id пациента из базы данных или генерируем новый $doctorId = getRandomDoctorId($doctors); $appointmentDate = '2/12/2023'; // генерируем дату приема // Вставляем запись в базу данных $q = mysqli_prepare( $mysqli, "INSERT INTO `patient_appointments` (`patient_id`, `doctor_id`, `appointment_date`) VALUES (?, ?, ?)" ); $q->bind_param("iis", $patientId, $doctorId, $appointmentDate); $q->execute(); // Пример использования PDO для вставки записи //$stmt = $pdo->prepare("INSERT INTO patient_appointments (patient_id, doctor_id, appointment_date) VALUES (?, ?, ?)"); //$stmt->execute([$patientId, $doctorId, $appointmentDate]); }
Show:  
Copy Clear