How to develop Projects(HMS) Using PHP and Mysql Part 9

Rashmi Mishra
0



How to develop Projects(HMS) Using PHP and Mysql   
Part 9

 

4️ Hospital Management System

📌 Folder Structure:

│── /patients/               

   ├── add_patient.php         # Add patient 

   ├── edit_patient.php        # Edit patient details 

   ├── delete_patient.php      # Delete patient 

   ├── patient_list.php        # List all patients 

Database Table:

CREATE TABLE patients (

    id INT AUTO_INCREMENT PRIMARY KEY,

    name VARCHAR(255) NOT NULL,

    age INT NOT NULL,

    gender ENUM('Male', 'Female', 'Other') NOT NULL,

    contact VARCHAR(15),

    height int(11), 

    weight int(11),  

    medical_history TEXT,

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

📌 File: patients/add_patient.php

<?php

// Include database connection

include('../config/db.php');

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    // Get form data

    $name = $_POST['name'];

    $age = $_POST['age'];

    $gender = $_POST['gender'];

    $height = $_POST['height'];

    $weight = $_POST['weight'];

    $medical_history = $_POST['medical_history'];

 

    // Prepare and execute the query

    $sql = "INSERT INTO patients (name, age, gender, height, weight, medical_history)

            VALUES ('$name', '$age', '$gender', '$height', '$weight', '$medical_history')";

 

    if ($conn->query($sql) === TRUE) {

        echo "New patient added successfully.";

    } else {

        echo "Error: " . $sql . "<br>" . $conn->error;

    }

}

 

// Close connection

$conn->close();

?>

<!DOCTYPE html>

<html>

<head>

    <title>Add Patient</title>

</head>

<body>

    <h2>Add New Patient</h2>

    <form method="post" action="">

        <label>Name:</label>

        <input type="text" name="name" required><br><br>

        <label>Age:</label>

        <input type="number" name="age" required><br><br>

        <label>Gender:</label>

        <select name="gender" required>

            <option value="Male">Male</option>

            <option value="Female">Female</option>

            <option value="Other">Other</option>

        </select><br><br>

        <label>Height (cm):</label>

        <input type="number" name="height"><br><br>

        <label>Weight (kg):</label>

        <input type="number" name="weight"><br><br>

        <label>Medical History:</label>

        <textarea name="medical_history"></textarea><br><br>

        <input type="submit" value="Add Patient">

    </form>

</body>

</html>

Explanation:

1.   Database Connection: Uses MySQLi to connect to hospital_management database.

2.   Form Handling: When the form is submitted using POST, the patient details are retrieved and inserted into the patients table.

3.   SQL Query Execution: Uses INSERT INTO SQL query to add patient data.

4.   Basic HTML Form: Allows users to input patient details.

📌 File: patients/edit_patient.php

 <?php

// Include database connection

include('../config/db.php');

// Check if patient ID is set

if (!isset($_GET['id'])) {

    die("Invalid request. No patient ID provided.");

}

 

$patient_id = $_GET['id'];

 

// Fetch patient details

$sql = "SELECT * FROM patients WHERE id = $patient_id";

$result = $conn->query($sql);

 

if ($result->num_rows == 0) {

    die("Patient not found.");

}

 

$patient = $result->fetch_assoc();

 

// Handle form submission

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    // Get updated values

    $name = $_POST['name'];

    $age = $_POST['age'];

    $gender = $_POST['gender'];

    $height = $_POST['height'];

    $weight = $_POST['weight'];

    $medical_history = $_POST['medical_history'];

 

    // Update query

    $update_sql = "UPDATE patients SET

                    name = '$name',

                    age = '$age',

                    gender = '$gender',

                    height = '$height',

                    weight = '$weight',

                    medical_history = '$medical_history'

                    WHERE id = $patient_id";

 

    if ($conn->query($update_sql) === TRUE) {

        echo "Patient details updated successfully.";

        // Redirect to another page if needed

    } else {

        echo "Error: " . $conn->error;

    }

}

 

// Close connection

$conn->close();

?>

 

<!DOCTYPE html>

<html>

<head>

    <title>Edit Patient</title>

</head>

<body>

    <h2>Edit Patient Details</h2>

    <form method="post" action="">

        <label>Name:</label>

        <input type="text" name="name" value="<?php echo $patient['name']; ?>" required><br><br>

 

        <label>Age:</label>

        <input type="number" name="age" value="<?php echo $patient['age']; ?>" required><br><br>

 

        <label>Gender:</label>

        <select name="gender" required>

            <option value="Male" <?php if ($patient['gender'] == 'Male') echo 'selected'; ?>>Male</option>

            <option value="Female" <?php if ($patient['gender'] == 'Female') echo 'selected'; ?>>Female</option>

            <option value="Other" <?php if ($patient['gender'] == 'Other') echo 'selected'; ?>>Other</option>

        </select><br><br>

 

        <label>Height (cm):</label>

        <input type="number" name="height" value="<?php echo $patient['height']; ?>"><br><br>

 

        <label>Weight (kg):</label>

        <input type="number" name="weight" value="<?php echo $patient['weight']; ?>"><br><br>

 

        <label>Medical History:</label>

        <textarea name="medical_history"><?php echo $patient['medical_history']; ?></textarea><br><br>

 

        <input type="submit" value="Update Patient">

    </form>

</body>

</html>

Explanation:

1.   Database Connection: Uses MySQLi to connect to hospital_management database.

2.   Fetching Patient Details: Retrieves patient data from the database using SELECT.

3.   Updating Patient Details: If the form is submitted, it updates the database using UPDATE.

4.   Basic HTML Form: Pre-fills the form with existing patient data for editing.

📌 File: patients/delete_patient.php

<?php

// Include database connection

include('../config/db.php');

// Check if patient ID is set

if (!isset($_GET['id'])) {

    die("Invalid request. No patient ID provided.");

}

 

$patient_id = $_GET['id'];

 

// Delete query

$sql = "DELETE FROM patients WHERE id = $patient_id";

 

if ($conn->query($sql) === TRUE) {

    echo "Patient deleted successfully.";

} else {

    echo "Error: " . $conn->error;

}

 

// Close connection

$conn->close();

?>

Explanation:

1.   Database Connection: Establishes a MySQLi connection to the hospital_management database.

2.   Checking Patient ID: Ensures that a valid id is provided in the URL.

3.   Executing the DELETE Query: Deletes the patient record from the patients table.

4.   Success/Error Message: Displays a success or error message based on the query execution.

🔹 This script should be accessed via a URL like:
delete_patient.php?id=1 (where 1 is the patient's ID to delete).

📌 File: patients/patient_list.php

<?php

// Include database connection

include('../config/db.php');

// Fetch all patients

$sql = "SELECT * FROM patients ORDER BY id DESC";

$result = $conn->query($sql);

?>

 

<!DOCTYPE html>

<html>

<head>

    <title>Patient List</title>

    <style>

        table {

            width: 100%;

            border-collapse: collapse;

        }

        table, th, td {

            border: 1px solid black;

            padding: 10px;

            text-align: left;

        }

        th {

            background-color: #f2f2f2;

        }

        .btn {

            padding: 5px 10px;

            text-decoration: none;

            border: none;

            cursor: pointer;

        }

        .edit {

            background-color: #4CAF50;

            color: white;

        }

        .delete {

            background-color: #f44336;

            color: white;

        }

    </style>

</head>

<body>

    <h2>Patient List</h2>

    <table>

        <tr>

            <th>ID</th>

            <th>Name</th>

            <th>Age</th>

            <th>Gender</th>

            <th>Height</th>

            <th>Weight</th>

            <th>Medical History</th>

            <th>Actions</th>

        </tr>

        <?php

        if ($result->num_rows > 0) {

            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['height'] . "</td>

                        <td>" . $row['weight'] . "</td>

                        <td>" . $row['medical_history'] . "</td>

                        <td>

                            <a href='edit_patient.php?id=" . $row['id'] . "' class='btn edit'>Edit</a>

                            <a href='delete_patient.php?id=" . $row['id'] . "' class='btn delete' onclick='return confirm(\"Are you sure you want to delete this patient?\")'>Delete</a>

                        </td>

                    </tr>";

            }

        } else {

            echo "<tr><td colspan='8'>No patients found.</td></tr>";

        }

        ?>

    </table>

</body>

</html>

 

<?php

// Close connection

$conn->close();

?>

Explanation:

1.   Database Connection: Connects to the hospital_management database using MySQLi.

2.   Fetching Patients: Retrieves all records from the patients table in descending order.

3.   Displaying Data: Outputs patient records in an HTML table.

4.   Edit & Delete Options:

o    Edit: Links to edit_patient.php?id={patient_id} for updating patient details.

o    Delete: Links to delete_patient.php?id={patient_id} with a confirmation alert before deletion.

Post a Comment

0Comments

Post a Comment (0)