File "company_details.php"
Full Path: /home/alphpwcp/previewstream.online/old/company_details.php
File size: 10.14 KB
MIME-type: text/x-php
Charset: utf-8
<?php
session_start();
include 'db.php';
$id = $_GET['id'] ?? 0;
// Fetch company details
$stmt = $pdo->prepare("
SELECT c.*, cat.name AS category_name
FROM companies c
LEFT JOIN categories cat ON c.category_id = cat.id
WHERE c.id = ?
");
$stmt->execute([$id]);
$company = $stmt->fetch();
if (!$company) {
die("Company not found. <a href='index.php'>Back to home</a>");
}
// Get total reviews + average rating
$stmt = $pdo->prepare("SELECT COUNT(*) AS total_reviews, AVG(rating) AS avg_rating FROM reviews WHERE company_id = ?");
$stmt->execute([$id]);
$reviewStats = $stmt->fetch();
// Get top-rated review
$stmt = $pdo->prepare("
SELECT r.*, u.username
FROM reviews r
JOIN users u ON r.user_id = u.id
WHERE company_id = ?
ORDER BY rating DESC, created_at DESC
LIMIT 1
");
$stmt->execute([$id]);
$topReview = $stmt->fetch();
// Latest reviews
$latestReviews = $pdo->query("
SELECT r.comment, r.rating, u.username, c.name AS company_name
FROM reviews r
JOIN users u ON r.user_id = u.id
JOIN companies c ON r.company_id = c.id
ORDER BY r.id DESC
LIMIT 5
")->fetchAll();
// Top rated companies
$topCompanies = $pdo->query("
SELECT c.id, c.name, c.image, ROUND(AVG(r.rating),1) AS avg_rating
FROM companies c
JOIN reviews r ON c.id = r.company_id
GROUP BY c.id
HAVING COUNT(r.id) >= 1
ORDER BY avg_rating DESC
LIMIT 5
")->fetchAll();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><?= htmlspecialchars($company['name']) ?> - Review Stream</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- Sans-serif fonts -->
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Raleway&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif&display=swap" rel="stylesheet">
<!-- Favicon -->
<link rel="icon" href="/favicon.png" type="image/png" />
<style>
body {
margin: 0;
padding: 0; /* removed huge padding */
font-family: Arial, sans-serif;
background: #f5f5f5;
padding-bottom: 200px !important;
}
.container {max-width: 1200px;
margin: auto;
padding: 20px;
}
.content-layout {
display: flex;
gap: 20px;
flex-wrap: wrap;
}
.main-content{
flex: 3;
min-width: 250px;
background: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.main-content p{
font-family: 'Poppins', sans-serif;
}
.sidebar { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 15px; }
.sidebar-card { background: #fff; padding: 12px; border-radius: 8px; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.star-box {
display: inline-block;
width: 22px;
height: 22px;
margin-right: 2px;
background-color: #d3d3d3;
color: white;
text-align: center;
line-height: 22px;
font-size: 14px;
border-radius: 3px;
}
.star-box.filled {
background-color: #00b67a;
}
.about-company {
background: #fafafa;
margin-top: 25px;
padding: 15px;
border-left: 4px solid #00b67a;
border-radius: 6px;
}
.about-company h3 {
margin-top: 0;
color: #333;
}
.topbar {
background: #007BFF;
color: white;
padding: 10px 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.topbar .menu a {
color: white;
margin-left: 10px;
text-decoration: none;
}
footer {
text-align: center;
margin-top: 40px;
padding: 15px;
font-size: 14px;
color: #666;
}
.footer-menu a {
margin: 0 8px;
color: #666;
text-decoration: none;
}
.review-box {
background: #f9f9f9;
padding: 10px;
margin-bottom: 10px;
border-radius: 6px;
}
.review-box1 p{
font-family: 'Poppins', sans-serif;
line-height: 8px !important;
font-size: 13px !important;
}
.fixed-footer {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background: #222;
text-align: center;
padding: 10px 0;
color: #fff;
z-index: 1000;
}
.fixed-footer p{
font-family: 'Poppins', sans-serif !important;
font-size: 13px !important;
}
.footer-menu a {
margin: 0 10px;
text-decoration: none;
color: #fff;
font-family: 'Poppins', sans-serif !important;
font-size: 13px !important;
}
.footer-menu a:hover {
text-decoration: underline;
}
/* Collapsible menu */
.menu { display: none; flex-direction: column; }
.menu.active { display: flex; }
.menu a { padding: 8px 0; text-decoration: none; color: #333; }
.menu-toggle { font-size: 1.5em; cursor: pointer; }
@media(min-width: 768px){
.menu { display: flex !important; flex-direction: row; }
.menu a { margin-left: 15px; }
.menu-toggle { display: none; }
}
.topbar {
display:flex;
justify-content:space-between;
align-items:center;
padding:10px 20px;
background:#007BFF;
color:white;
}
.logo {
font-size: 20px;
font-weight: bold;
display: flex;
align-items: center;
gap: 10px;
}
.logo-icon {
display: inline-flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #a2d4f5, #fefb72); /* light blue to lemon */
border-radius: 50%;
width: 36px;
height: 36px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
margin-right: 8px;
}
</style>
</head>
<body>
<div class="topbar">
<div class="logo"><div class="logo-icon"><i class="fas fa-shield-alt" style="color: skyblue; font-size: 25px; margin-left: 6px !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);"></i>
</div> REVIEW STREAM
</div>
<div class="menu-toggle" onclick="document.querySelector('.menu').classList.toggle('active')">
<i class="fas fa-bars"></i>
</div>
<div class="menu">
<a href="index.php">Home</a>
<a href="companies.php">Companies</a>
<a href="blog.php">Newsroom</a>
<?php if(isset($_SESSION['user_id'])): ?>
<a href="logout.php">Logout</a>
<?php else: ?>
<a href="login.php">Login</a>
<?php endif; ?>
<button class="dark-mode-toggle" onclick="document.body.classList.toggle('dark-mode')">🌓</button>
</div>
</div>
<div class="container">
<div class="content-layout">
<div class="main-content">
<div class="card">
<h1><?= htmlspecialchars($company['name']) ?></h1>
<img src="images/companies/<?= htmlspecialchars($company['image']) ?>" alt="<?= $company['name'] ?>" style="max-width: 200px; margin-bottom: 15px;">
<p><strong>Category:</strong> <?= htmlspecialchars($company['category_name']) ?></p>
<p><strong>Region:</strong> <?= htmlspecialchars($company['region']) ?></p>
<p><strong>Website:</strong> <a href="<?= htmlspecialchars($company['website']) ?>" target="_blank"><?= htmlspecialchars($company['website']) ?></a></p>
<?php if (!empty($company['description'])): ?>
<p style="margin-top: 40px; font-weight:bold; font-size: 27px">About <?= htmlspecialchars($company['name']) ?></p>
<p style="font-size: 13px"><?= nl2br(htmlspecialchars($company['description'])) ?></p>
<?php endif; ?>
<hr>
<h3>Review Summary</h3>
<p><strong>Total Reviews:</strong> <?= $reviewStats['total_reviews'] ?></p>
<p><strong>Average Rating:</strong>
<?php
$avg = round($reviewStats['avg_rating'], 1);
for ($i = 1; $i <= 5; $i++) {
echo '<i class="fas fa-star" style="color: ' . ($i <= $avg ? 'gold' : '#ccc') . '"></i>';
}
echo " {$avg}/5";
?>
</p>
<?php if ($topReview): ?>
<div class="top-review" style="margin-top: 20px;">
<h4>Top Review by <?= htmlspecialchars($topReview['username']) ?></h4>
<p>
<?php for ($i = 1; $i <= 5; $i++): ?>
<i class="fas fa-star" style="color: <?= $i <= $topReview['rating'] ? '#f8c01b' : '#ccc' ?>"></i>
<?php endfor; ?>
(<?= $topReview['rating'] ?>/5)
</p>
<p><?= nl2br(htmlspecialchars($topReview['comment'])) ?></p>
</div>
<?php endif; ?>
<a href="review.php?id=<?= $company['id'] ?>" class="btn" style="margin-top: 25px; display: inline-block;">Read All Reviews</a>
</div>
</div>
<div class="sidebar">
<div class="sidebar-card">
<h4>Latest Reviews</h4>
<?php foreach($latestReviews as $rev): ?>
<p><strong><?= htmlspecialchars($rev['username']) ?></strong> on <em><?= htmlspecialchars($rev['company_name']) ?></em>:</p>
<div>
<?php for($i=1;$i<=5;$i++): ?>
<span class="star-box <?= $i<=$rev['rating'] ? 'filled' : '' ?>">★</span>
<?php endfor; ?>
(<?= $rev['rating'] ?>/5)
</div>
<p style="margin-top:2px;"><?= htmlspecialchars(substr($rev['comment'],0,50)) ?>...</p>
<hr>
<?php endforeach; ?>
</div>
<div class="sidebar-card">
<h4>Top Rated Companies</h4>
<?php foreach($topCompanies as $top): ?>
<div style="display:flex;align-items:center;gap:8px;margin-bottom:5px;">
<img src="images/companies/<?= htmlspecialchars($top['image']) ?>" alt="<?= htmlspecialchars($top['name']) ?>" style="width:30px;height:30px;object-fit:contain;">
<span><?= htmlspecialchars($top['name']) ?> (<?= $top['avg_rating'] ?>/5)</span>
</div>
<?php endforeach; ?>
</div>
</div>
</div><!-- end of content layout-->
</div><!-- end of container-->
<?php include 'footer.php'; ?>
</body>
</html>