How to develop Projects(HMS) Using PHP and Mysql
Part 10
4️⃣ Hospital Management System
Module 2: Add Doctor Details
Purpose: Allows hospital staff to add and manage doctor details.
✅ Functionalities:
- ✅ Add doctor details
- ✅ Edit doctor details
- ✅ Delete doctor records
📁 Project Structure:
│── /doctors/
│ ├── add_doctor.php # Add doctor
│ ├── edit_doctor.php # Edit doctor details
│ ├── delete_doctor.php # Delete doctor
│ ├── doctor_list.php # List all doctors
🧾 Database Table:
CREATE TABLE doctors (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
specialization VARCHAR(255) NOT NULL,
qualification VARCHAR(255),
contact VARCHAR(15),
gender ENUM('Male', 'Female', 'Other') NOT NULL,
experience INT, -- in years
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
📂 /doctors/
Files
✅ add_doctor.php
<?php
include '../db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$name = mysqli_real_escape_string($conn,
$_POST['name']);
$specialization
= mysqli_real_escape_string($conn, $_POST['specialization']);
$qualification
= mysqli_real_escape_string($conn, $_POST['qualification']);
$contact = mysqli_real_escape_string($conn,
$_POST['contact']);
$gender = $_POST['gender'];
$experience
= $_POST['experience'];
$sql = "INSERT
INTO doctors (name, specialization, qualification, contact, gender, experience)
VALUES ('$name', '$specialization', '$qualification', '$contact', '$gender',
'$experience')";
if (mysqli_query($conn,
$sql)) {
echo "Doctor
added successfully.";
} else {
echo "Error:
" . mysqli_error($conn);
}
}
?>
🧾
Sample Form (HTML)
<form method="POST" action="add_doctor.php">
<input type="text"
name="name" placeholder="Name" required><br>
<input type="text"
name="specialization" placeholder="Specialization" required><br>
<input type="text"
name="qualification" placeholder="Qualification"><br>
<input type="text"
name="contact" placeholder="Contact Number"><br>
<select name="gender"
required>
<option
value="">-- Select Gender --</option>
<option
value="Male">Male</option>
<option
value="Female">Female</option>
<option
value="Other">Other</option>
</select><br>
<input type="number"
name="experience" placeholder="Experience (Years)"><br>
<button type="submit">Add
Doctor</button>
</form>
✅ edit_doctor.php
<?php
include '../db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$id = $_POST['id'];
$name = mysqli_real_escape_string($conn,
$_POST['name']);
$specialization
= mysqli_real_escape_string($conn, $_POST['specialization']);
$qualification
= mysqli_real_escape_string($conn, $_POST['qualification']);
$contact = mysqli_real_escape_string($conn,
$_POST['contact']);
$gender = $_POST['gender'];
$experience
= $_POST['experience'];
$sql = "UPDATE
doctors SET
name='$name',
specialization='$specialization',
qualification='$qualification',
contact='$contact',
gender='$gender',
experience='$experience'
WHERE id='$id'";
if (mysqli_query($conn,
$sql)) {
echo "Doctor
details updated successfully.";
} else {
echo "Error:
" . mysqli_error($conn);
}
}
?>
✅ delete_doctor.php
<?php
include '../db.php';
if (isset($_GET['id'])) {
$id = $_GET['id'];
$sql = "DELETE
FROM doctors WHERE id='$id'";
if (mysqli_query($conn,
$sql)) {
echo "Doctor
record deleted.";
} else {
echo "Error:
" . mysqli_error($conn);
}
}
?>
✅ doctor_list.php
<?php
include '../db.php';
$sql = "SELECT * FROM doctors ORDER BY created_at
DESC";
$result = mysqli_query($conn, $sql);
echo "<h2>Doctors List</h2><table
border='1' cellpadding='10'>";
echo "<tr><th>Name</th><th>Specialization</th><th>Qualification</th><th>Contact</th><th>Gender</th><th>Experience</th><th>Action</th></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>
<td>{$row['name']}</td>
<td>{$row['specialization']}</td>
<td>{$row['qualification']}</td>
<td>{$row['contact']}</td>
<td>{$row['gender']}</td>
<td>{$row['experience']} yrs</td>
<td>
<a href='edit_doctor.php?id={$row['id']}'>Edit</a> |
<a href='delete_doctor.php?id={$row['id']}' onclick=\"return
confirm('Delete this doctor?')\">Delete</a>
</td>
</tr>";
}
echo "</table>";
?>
📌
Notes:
- Add
CSS or Bootstrap for better styling.
- You
can implement session/login check if needed.
- Ensure
the doctors table is created as given:
CREATE TABLE doctors (
id INT
AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
NOT NULL,
specialization
VARCHAR(255) NOT NULL,
qualification VARCHAR(255),
contact VARCHAR(15),
gender ENUM('Male',
'Female', 'Other') NOT NULL,
experience INT,
created_at TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
);