diff --git a/discover.php b/discover.php index 9bb3b61..4c46aa1 100644 --- a/discover.php +++ b/discover.php @@ -1,88 +1,59 @@ prepare("SELECT * FROM users WHERE id = ?"); -$stmt->execute([$current_user_id]); +$stmt->execute([$user_id]); $user = $stmt->fetch(); - -if (!$user) { - session_destroy(); - header("Location: login.php"); - exit; -} +if (!$user) { header('Location: login.php'); exit; } $user_role = $user['role']; +$platformName = defined('PLATFORM_NAME') ? PLATFORM_NAME : 'Gatsby'; -// Blocked users filter -$stmt = db()->prepare("SELECT blocked_id FROM blocked_users WHERE blocker_id = ?"); -$stmt->execute([$current_user_id]); -$blocked_ids = $stmt->fetchAll(PDO::FETCH_COLUMN); - -$stmt = db()->prepare("SELECT blocker_id FROM blocked_users WHERE blocked_id = ?"); -$stmt->execute([$current_user_id]); -$blocked_by_ids = $stmt->fetchAll(PDO::FETCH_COLUMN); - -$all_blocked = array_unique(array_merge($blocked_ids, $blocked_by_ids)); -$placeholders = empty($all_blocked) ? "0" : implode(',', array_fill(0, count($all_blocked), '?')); - -// Leaderboard: Most Followed (All Time) -$sql = " - SELECT s.id, s.name, s.description, u.full_name as founder_name, COUNT(sf.id) as followers_count - FROM startups s - JOIN users u ON s.founder_id = u.id - LEFT JOIN startup_followers sf ON s.id = sf.startup_id - WHERE u.id NOT IN ($placeholders) - GROUP BY s.id - ORDER BY followers_count DESC - LIMIT 10 -"; -$stmt = db()->prepare($sql); -$stmt->execute($all_blocked ?: []); +// Leaderboard: Most Followed +$stmt = db()->query(" + SELECT s.*, u.full_name as founder_name, s.followers_count + FROM startups s + JOIN users u ON s.founder_id = u.id + ORDER BY s.followers_count DESC + LIMIT 3 +"); $mostFollowed = $stmt->fetchAll(); -// Leaderboard: Most Funded (All Time) -$sql = " - SELECT s.id, s.name, s.description, u.full_name as founder_name, s.funding_raised as funded_amount +// Leaderboard: Most Funded (Total funding raised) +$stmt = db()->query(" + SELECT s.id, s.name, u.full_name as founder_name, s.funding_raised as funded_amount FROM startups s JOIN users u ON s.founder_id = u.id - WHERE u.id NOT IN ($placeholders) - ORDER BY funded_amount DESC - LIMIT 10 -"; -$stmt = db()->prepare($sql); -$stmt->execute($all_blocked ?: []); + ORDER BY s.funding_raised DESC + LIMIT 3 +"); $mostFunded = $stmt->fetchAll(); -// Search logic +// General Browse $q = $_GET['q'] ?? ''; -$browseStartups = []; -$where = "s.status = 'public' AND u.id NOT IN ($placeholders)"; -$params = $all_blocked ?: []; +$where = "onboarding_completed = 1"; +$params = []; if ($q) { - $where .= " AND (s.name LIKE ? OR s.description LIKE ? OR u.full_name LIKE ?)"; + $where .= " AND (s.name LIKE ? OR s.description LIKE ? OR s.industry LIKE ?)"; $params[] = "%$q%"; $params[] = "%$q%"; $params[] = "%$q%"; } + $stmt = db()->prepare(" SELECT s.*, u.full_name as founder_name FROM startups s JOIN users u ON s.founder_id = u.id WHERE $where ORDER BY s.created_at DESC - LIMIT 20 + LIMIT 12 "); $stmt->execute($params); $browseStartups = $stmt->fetchAll(); - -$platformName = defined('PLATFORM_NAME') ? PLATFORM_NAME : 'Gatsby'; ?> @@ -90,13 +61,15 @@ $platformName = defined('PLATFORM_NAME') ? PLATFORM_NAME : 'Gatsby';