prepare('SELECT p.*, u.name as user_name, c.name as community_name FROM proposals p JOIN users u ON p.user_id = u.id JOIN communities c ON p.community_id = c.id WHERE p.id = ?'); $stmt->execute([$proposal_id]); $proposal = $stmt->fetch(); if (!$proposal) { header('Location: communities.php'); exit; } // Handle voting if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['vote'])) { $vote = $_POST['vote']; if (in_array($vote, ['up', 'down'])) { try { // Check if user has already voted $stmt = $pdo->prepare('SELECT id FROM proposal_votes WHERE user_id = ? AND proposal_id = ?'); $stmt->execute([$user_id, $proposal_id]); if ($stmt->fetch()) { // Update existing vote $stmt = $pdo->prepare('UPDATE proposal_votes SET vote = ? WHERE user_id = ? AND proposal_id = ?'); $stmt->execute([$vote, $user_id, $proposal_id]); } else { // Insert new vote $stmt = $pdo->prepare('INSERT INTO proposal_votes (proposal_id, user_id, vote) VALUES (?, ?, ?)'); $stmt->execute([$proposal_id, $user_id, $vote]); } header('Location: proposal.php?id=' . $proposal_id); exit; } catch (PDOException $e) { $errors[] = 'Database error: ' . $e->getMessage(); } } } // Fetch votes $stmt = $pdo->prepare('SELECT vote, COUNT(*) as count FROM proposal_votes WHERE proposal_id = ? GROUP BY vote'); $stmt->execute([$proposal_id]); $votes = $stmt->fetchAll(PDO::FETCH_KEY_PAIR); $up_votes = $votes['up'] ?? 0; $down_votes = $votes['down'] ?? 0; // Check if the current user has voted $stmt = $pdo->prepare('SELECT vote FROM proposal_votes WHERE user_id = ? AND proposal_id = ?'); $stmt->execute([$user_id, $proposal_id]); $user_vote = $stmt->fetchColumn(); ?> <?php echo htmlspecialchars($proposal['title']); ?> - Community Hub

in by on

Voting ends:

Voting

Upvotes

Downvotes

time()): ?>

Cast Your Vote

Voting on this proposal has ended.