Online Pharmacy Management System Project In Php -

$medicine_id = $_POST['medicine_id']; $quantity = $_POST['quantity'];

-- Orders table CREATE TABLE orders ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, order_number VARCHAR(50) UNIQUE, total_amount DECIMAL(10,2), payment_method ENUM('cod', 'card', 'online'), order_status ENUM('pending', 'confirmed', 'shipped', 'delivered', 'cancelled') DEFAULT 'pending', prescription_uploaded VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) );

else // Logged-in user: store in database $user_id = $_SESSION['user_id']; $medicine_id = $_POST['medicine_id']; $quantity = $_POST['quantity'];

// Generate unique order number $order_number = 'ORD-' . strtoupper(uniqid()); online pharmacy management system project in php

Cart persistence across login/logout Solution: Merge session cart into database cart when user logs in. Conclusion This Online Pharmacy Management System covers core e-commerce functionality tailored for pharmaceutical needs. The complete source code can be built in 2-3 weeks by a mid-level PHP developer. For production, add HTTPS, implement proper logging, and comply with local pharmaceutical regulations (preservation of prescription records, data retention policies).

1. Project Overview An Online Pharmacy Management System allows customers to browse medicines, place orders, and manage prescriptions, while administrators handle inventory, orders, and users.

// Check if any medicine requires prescription $has_prescription_required = false; // ... query to check cart items The complete source code can be built in

?> <?php require_once 'includes/config.php'; if ($_SERVER['REQUEST_METHOD'] == 'POST') $name = $_POST['name']; $email = $_POST['email']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $phone = $_POST['phone'];

header('Location: cart.php'); ?> <?php require_once 'includes/config.php'; if (!isset($_SESSION['user_id'])) header('Location: login.php'); exit();

$sql = "INSERT INTO users (name, email, password, phone) VALUES (?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); Project Overview An Online Pharmacy Management System allows

?> <?php require_once '../includes/config.php'; require_once '../includes/auth.php'; // Ensure admin login if ($_SERVER['REQUEST_METHOD'] == 'POST') $name = $_POST['name']; $category_id = $_POST['category_id']; $price = $_POST['price']; $stock = $_POST['stock']; $requires_prescription = isset($_POST['requires_prescription']) ? 1 : 0; $description = $_POST['description'];

-- Order items table CREATE TABLE order_items ( id INT PRIMARY KEY AUTO_INCREMENT, order_id INT, medicine_id INT, quantity INT, price DECIMAL(10,2), FOREIGN KEY (order_id) REFERENCES orders(id), FOREIGN KEY (medicine_id) REFERENCES medicines(id) ); online-pharmacy/ │ ├── assets/ │ ├── css/ │ ├── js/ │ └── images/ │ ├── includes/ │ ├── config.php (database connection) │ ├── header.php │ ├── footer.php │ └── auth.php (session & role check) │ ├── admin/ │ ├── index.php (admin dashboard) │ ├── medicines.php (CRUD operations) │ ├── categories.php │ ├── orders.php │ └── users.php │ ├── user/ │ ├── profile.php │ ├── cart.php │ ├── checkout.php │ └── my-orders.php │ ├── public/ │ ├── index.php (home page) │ ├── shop.php (medicine listing) │ ├── product-details.php │ ├── login.php │ ├── register.php │ └── logout.php │ ├── uploads/ │ └── prescriptions/ │ └── sql/ └── database.sql 5. Key Implementation Examples Database Connection ( includes/config.php ) <?php $host = 'localhost'; $dbname = 'pharmacy_db'; $username = 'root'; $password = ''; try $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); session_start(); catch(PDOException $e) die("Connection failed: " . $e->getMessage());

-- Medicines table CREATE TABLE medicines ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(200) NOT NULL, category_id INT, price DECIMAL(10,2) NOT NULL, stock INT NOT NULL, requires_prescription TINYINT DEFAULT 0, description TEXT, image VARCHAR(255), expiry_date DATE, status TINYINT DEFAULT 1, FOREIGN KEY (category_id) REFERENCES categories(id) );

$user_id = $_SESSION['user_id']; $prescription_path = null;

Maintaining stock accuracy Solution: Use database transactions; decrement stock only after order confirmation; prevent negative stock with CHECK (stock >= 0) .