Horje
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

fewfe

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:




Reffered: https://www.geeksforgeeks.org


Geeks Premier League

Related
Importing Python Functions from Other Scripts Importing Python Functions from Other Scripts
Invalid Decimal Literal in Python Invalid Decimal Literal in Python
Learn Multiplication Table of 20 | 20 Times Table | Download PDF Learn Multiplication Table of 20 | 20 Times Table | Download PDF
Convert a Bytes Array into Json Format in Python Convert a Bytes Array into Json Format in Python
Overflowerror: Convert Int Large to Float in Python Overflowerror: Convert Int Large to Float in Python

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
13