How to develop Projects Using PHP and Mysql -Part 1

Rashmi Mishra
0

 


How to develop Projects Using PHP and Mysql 
Part 1

First U start ur xampp server ,apache and mysql both. 

Suppose your project is event management system , so You create a database named event-management-system .

Step 1: Create the database


Step 2 : Create the tables



And After creating the database u create all the required tables.

This database covers these tables:

  • Users: Stores admin and regular users.

  • Events: Stores event details.

  • Bookings: Manages event registrations.

  • Payments: Handles payment transactions.

  • Notifications: Tracks email/SMS notifications.

  • Reports: Stores admin-generated reports.


Database.sql

CREATE DATABASE event_management_system;
USE event_management_system;

-- Users Table
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL,
    phone VARCHAR(15),
    role ENUM('admin', 'user') DEFAULT 'user',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Events Table
CREATE TABLE events (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    event_date DATETIME NOT NULL,
    location VARCHAR(255) NOT NULL,
    organizer_id INT,
    image VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (organizer_id) REFERENCES users(id) ON DELETE SET NULL
);

-- Bookings Table
CREATE TABLE bookings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    event_id INT NOT NULL,
    status ENUM('pending', 'confirmed', 'cancelled') DEFAULT 'pending',
    booking_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);

-- Payments Table
CREATE TABLE payments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    booking_id INT NOT NULL,
    user_id INT NOT NULL,
    amount DECIMAL(10,2) NOT NULL,
    payment_status ENUM('pending', 'completed', 'failed') DEFAULT 'pending',
    payment_method ENUM('credit_card', 'paypal', 'bank_transfer') NOT NULL,
    transaction_id VARCHAR(255),
    payment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (booking_id) REFERENCES bookings(id) ON DELETE CASCADE,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

-- Notifications Table
CREATE TABLE notifications (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    message TEXT NOT NULL,
    type ENUM('email', 'sms') NOT NULL,
    status ENUM('sent', 'failed') DEFAULT 'sent',
    sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

-- Reports Table
CREATE TABLE reports (
    id INT AUTO_INCREMENT PRIMARY KEY,
    admin_id INT NOT NULL,
    report_type ENUM('event_summary', 'user_activity', 'sales') NOT NULL,
    details TEXT,
    generated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (admin_id) REFERENCES users(id) ON DELETE CASCADE
);


Step 3: Create the Users table 


View table:




Next Step:
After creating this You have to create a Folder named event-management-system inside C:\XAMPP\HTDOCs.
Like: C:\XAMPP\htdocs\event-management-system

Example of the project folder structure:

 

event_management_system/

│── assets/                # Static assets (CSS, JS, Images)

│   ── css/

│   │   ── style.css

│   ── js/

│   │   ── script.js

│   ── images/

│── db/              # Reusable PHP files

│   ── db_connect.php     # Database connection

 

│── auth/                 # User management pages

│   ── register.php       # User registration

│   ── login.php          # User login

│   ── logout.php         # User logout

│── users/                 # User management pages

│   ── user_dashboard.php      # User dashboard

│── admin/                 # Admin-related pages

│   ── admin_dashboard.php  # Admin dashboard

│   ── manage_users.php     # Manage users

│   ── edit_user.php     # edit/update users

│   ── delete_user.php     # Manage users

│── includes/              # Reusable PHP files

│   ── sidebar.php     # Database connection

│   ── header.php         # Common header

│   ── footer.php         # Common footer

│   ── navbar.php         # Common navbar


│── events/                # Event-related pages

│   ── add_event.php      # Add new event

│   ── edit_event.php     # Edit event details

│   ── delete_event.php   # Delete an event

│   ── list_events.php    # Display all events

│── index.php              # Homepage

│── about.php              # About page

│── contact.php            # Contact page

│── config.php             # General configurations

│── .htaccess              # Optional for URL rewriting

│── README.md              # Project documentation

 

 

First U have to create a database folder inside the Project folder:
Inside this make a file named db_config.php inside the database folder
Code:

<?php

$servername = "localhost";  // Change if necessary

$username = "root";         // Your database username

$password = "";             // Your database password

$dbname = "event_management_system"; // Database name

 // Create connection

$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection

if ($conn->connect_error) {

    die("Connection failed: " . $conn->connect_error);

}

?>

 


Tags

Post a Comment

0Comments

Post a Comment (0)