Create a Hospital Management System using PHP and MySQL
The Hospital Management System (HMS) is a robust and efficient solution designed to streamline the processes within a healthcare facility. This project is built using PHP and MySQL, offering a user-friendly interface for managing patient information, appointments, and other essential aspects of hospital administration.
Preview
Approach
The approach involves creating a web-based system that utilizes PHP for server-side scripting and MySQL for the database. PHP handles the backend logic, while MySQL stores and retrieves data efficiently.
Steps to Create & Configure the Project
Step 1: Set Up a Local Development Environment.
- Install a web server (XAMPP, WampServer) to run PHP scripts.
- Set up a MySQL database for storing hospital data.
Step 2: Create Database and Tables
- Design the database schema to store patient information. In MySQL, create a database named hospital_management. Design tables, such as patients, to store relevant data like patient names, ages, and admission dates. Ensure to define appropriate data types, primary keys, and relationships.
CREATE DATABASE hospital_management;
USE hospital_management;
CREATE TABLE patients (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
gender VARCHAR(10) NOT NULL,
address TEXT,
admission_date DATE NOT NULL
);
Step 3: Build PHP Scripts
- Develop PHP scripts to handle various functionalities. Create separate PHP files for different features, such as adding patients (add_patient.php) and viewing patient information (view_patients.php). Implement the logic for interacting with the database, processing form submissions, and rendering dynamic content.
PHP
// index.php <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0" > <title>Hospital Management System</title> <style> body { background-color: #606060FF; color: #D6ED17FF; font-family: Arial, sans-serif; margin: 0; padding: 0; text-align: center; } h1 { background-color: #D6ED17FF; color: black !important; padding: 20px; margin-bottom: 0; } ul { list-style-type: none; padding: 0; } li { display: inline-block; margin: 10px; } a { text-decoration: none; color: #606060FF; background-color: #D6ED17FF; padding: 10px 20px; border-radius: 5px; } a:hover { background-color: #606060FF; color: #D6ED17FF; } </style> </head> <body> <h1>Hospital Management System</h1> <ul> <li> <a href= "add_patient.php" >Add Patient</a> </li> <li> <a href= "view_patients.php" >View Patients</a> </li> </ul> </body> </html> |
- Defines the HTML structure for the home page. Provides links to “add_patient.php” and “view_patients.php.” The embedded CSS styles enhance the appearance of the page.
PHP
// add_patient.php <?php if ( $_SERVER [ 'REQUEST_METHOD' ] === 'POST' ) { $name = $_POST [ 'name' ]; $age = $_POST [ 'age' ]; $gender = $_POST [ 'gender' ]; $address = $_POST [ 'address' ]; $admission_date = $_POST [ 'admission_date' ]; $conn = new mysqli( 'localhost' , 'root' , '' , 'hospital_management' ); if ( $conn ->connect_error) { die ( "Connection failed: " . $conn ->connect_error); } $sql = "INSERT INTO patients (name, age, gender, address, admission_date) VALUES ( '$name' , $age , '$gender' , '$address' , '$admission_date' )"; if ( $conn ->query( $sql ) === TRUE) { echo "Patient added successfully!" ; } else { echo "Error: " . $sql . "<br>" . $conn ->error; } $conn ->close(); } ?> <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0" > <title>Add Patient</title> <style> body { background-color: #606060FF; color: black; font-weight: bolder; font-family: Arial, sans-serif; text-align: center; margin: 0; padding: 20px; } form { max-width: 600px; margin: 0 auto; background-color: #D6ED17FF; padding: 20px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } h2{ background-color:#D6ED17FF; padding: 1%; border-radius: 35px; } label { display: block; margin: 10px 0; text-align: left; } input[type= "text" ], input[type= "number" ], select, textarea, input[type= "date" ], input[type= "submit" ] { width: 100%; margin: 5px 0; padding: 10px; border-radius: 5px; border: 1px solid #606060FF; box-sizing: border-box; } input[type= "submit" ] { background-color: #606060FF; color: #D6ED17FF; cursor: pointer; } input[type= "submit" ]:hover { background-color: #D6ED17FF; color: #606060FF; } </style> </head> <body> <h2>Add Patient</h2> <form method= "post" action= "" > <label for = "name" >Name:</label> <input type= "text" name= "name" required> <label for = "age" >Age:</label> <input type= "number" name= "age" required> <label for = "gender" >Gender:</label> <select name= "gender" > <option value= "Male" >Male</option> <option value= "Female" >Female</option> </select> <label for = "address" >Address:</label> <textarea name= "address" ></textarea> <label for = "admission_date" >Admission Date :</label> <input type= "date" name= "admission_date" required> <input type= "submit" value= "Add Patient" > </form> </body> </html> |
- Contains PHP code to handle form submissions. Retrieves data from the submitted form (name, age, etc.) using the $_POST superglobal. Connects to the MySQL database, constructs an SQL query, and inserts the new patient record. The HTML part includes a form with input fields for patient details.
PHP
//view_patients.php <?php $conn = new mysqli( 'localhost' , 'root' , '' , 'hospital_management' ); if ( $conn ->connect_error) { die ( "Connection failed: " . $conn ->connect_error); } $sql = "SELECT * FROM patients" ; $result = $conn ->query( $sql ); ?> <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0" > <title>View Patients</title> <style> body { background-color: #606060FF; color: black; font-family: Arial, sans-serif; text-align: center; margin: 0; padding: 20px; } h2{ background-color:#D6ED17FF; padding: 1%; border-radius: 35px; } table { background-color: #D6ED17FF; width: 100%; border-collapse: collapse; margin-top: 20px; } th, td { border: 5px solid #606060FF; padding: 10px; color:black; } th { background-color: #D6ED17FF; } </style> </head> <body> <h2>View Patients</h2> <table border= "1" > <tr> <th>ID</th> <th>Name</th> <th>Age</th> <th>Gender</th> <th>Address</th> <th>Admission Date </th> </tr> <?php while ( $row = $result ->fetch_assoc()) { echo "<tr> <td>{ $row [ 'id' ]}</td> <td>{ $row [ 'name' ]}</td> <td>{ $row [ 'age' ]}</td> <td>{ $row [ 'gender' ]}</td> <td>{ $row [ 'address' ]}</td> <td>{ $row [ 'admission_date' ]}</td> </tr>"; } ?> </table> </body> </html> |
- Connects to the MySQL database and executes an SQL query to fetch all patient records. Utilizes a while loop to iterate through the result set and dynamically generates an HTML table displaying patient information.
Step 4: Adding Data to the Table
If you want to insert dummy data through mysql, You can us ethe following code:
INSERT INTO patients (name, age, gender, address, admission_date) VALUES
('John Doe', 35, 'Male', '123 Main St, Cityville', '2022-01-15'),
('Jane Smith', 28, 'Female', '456 Oak St, Townsville', '2022-01-16'),
('Bob Johnson', 45, 'Male', '789 Pine St, Villagetown', '2022-01-17'),
('Alice Brown', 32, 'Female', '987 Cedar St, Hamletville', '2022-01-18'),
('Charlie Wilson', 50, 'Male', '654 Birch St, Countryside', '2022-01-19');
Project Structure
Steps 5: Run the Application
- Start your local web server and MySQL database.
- Place the project files in the root directory of your web server.
- Access the application through the web browser (e.g., http://localhost/Hospital management/index.php).
Output:
Contact Us