Onlinevoting System Project In Php And Mysql Source Code Github Exclusive -

-- Table: votes CREATE TABLE votes ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, candidate_id INT NOT NULL, position_id INT NOT NULL, voted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (candidate_id) REFERENCES candidates(id) );

🔗 Online Voting System in PHP & MySQL – Exclusive Edition -- Table: votes CREATE TABLE votes ( id

-- Table: users CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) UNIQUE NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, voter_id VARCHAR(50) UNIQUE, has_voted BOOLEAN DEFAULT FALSE, role ENUM('voter', 'admin') DEFAULT 'voter', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Table: candidates CREATE TABLE candidates ( id INT AUTO_INCREMENT PRIMARY KEY, position VARCHAR(100) NOT NULL, fullname VARCHAR(150) NOT NULL, biography TEXT, photo VARCHAR(255), votes INT DEFAULT 0 ); user_id INT NOT NULL

// Process vote based on POST data foreach($_POST['candidate'] as $position_id => $candidate_id) // Insert vote $insert = $conn->prepare("INSERT INTO votes (user_id, candidate_id, position_id) VALUES (?, ?, ?)"); $insert->execute([$_SESSION['user_id'], $candidate_id, $position_id]); candidate_id INT NOT NULL

-- Table: election_settings CREATE TABLE election_settings ( id INT AUTO_INCREMENT PRIMARY KEY, election_status ENUM('upcoming', 'active', 'closed') DEFAULT 'upcoming', start_date DATETIME, end_date DATETIME );

if($status !== 'active') $_SESSION['error'] = "Election is not active."; header("Location: index.php"); exit();

$_SESSION['success'] = "Thank you! Your vote has been recorded."; header("Location: results.php"); ?>