Online Pharmacy Management System Project In Php File

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

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

header('Location: medicines.php?msg=added'); ?> <?php session_start(); require_once 'includes/config.php'; if (!isset($_SESSION['user_id'])) // Guest cart stored in session if (!isset($_SESSION['cart'])) $_SESSION['cart'] = [];

-- Cart table CREATE TABLE cart ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, medicine_id INT, quantity INT, added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (medicine_id) REFERENCES medicines(id) ); online pharmacy management system project in php

-- 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) );

// Handle image upload $image = $_FILES['image']['name']; $target = "../uploads/" . basename($image); move_uploaded_file($_FILES['image']['tmp_name'], $target);

?> <?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']; else // Logged-in user: store in database $user_id

$sql = "INSERT INTO medicines (name, category_id, price, stock, requires_prescription, description, image) VALUES (?, ?, ?, ?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$name, $category_id, $price, $stock, $requires_prescription, $description, $image]);

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

-- 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) ); -- Orders table CREATE TABLE orders ( id

$sql = "INSERT INTO cart (user_id, medicine_id, quantity) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE quantity = quantity + ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$user_id, $medicine_id, $quantity, $quantity]);

if ($stmt->execute([$name, $email, $password, $phone])) header('Location: login.php?msg=registered'); else $error = "Registration failed. Email may already exist.";

Volver arriba