<?php
session_start();
include 'includes/db.php';
// Initialize comparison list if not exists
if (!isset($_SESSION['compare_cars'])) {
$_SESSION['compare_cars'] = [];
}
// Handle adding/removing trims from comparison
if (isset($_GET['action']) && isset($_GET['trim_id'])) {
$trim_id = (int)$_GET['trim_id'];
if ($_GET['action'] === 'add' && count($_SESSION['compare_cars']) < 5) {
if (!in_array($trim_id, $_SESSION['compare_cars'])) {
$_SESSION['compare_cars'][] = $trim_id;
}
} elseif ($_GET['action'] === 'remove') {
$_SESSION['compare_cars'] = array_filter($_SESSION['compare_cars'], function($id) use ($trim_id) {
return $id != $trim_id;
});
$_SESSION['compare_cars'] = array_values($_SESSION['compare_cars']); // Re-index array
}
// Redirect to avoid resubmission
header("Location: compare.php");
exit();
}
// Handle clear all
if (isset($_GET['clear'])) {
$_SESSION['compare_cars'] = [];
header("Location: compare.php");
exit();
}
include 'includes/header.php';
// Fetch trims for comparison
$compare_cars = [];
if (!empty($_SESSION['compare_cars'])) {
$placeholders = str_repeat('?,', count($_SESSION['compare_cars']) - 1) . '?';
$stmt = $conn->prepare("SELECT t.*, c.name as car_name, c.brand, c.model, c.year, c.category, c.description, c.video_url, b.logo as brand_logo
FROM car_trims t
LEFT JOIN cars c ON t.car_id = c.id
LEFT JOIN brands b ON c.brand = b.name
WHERE t.id IN ($placeholders)");
$stmt->bind_param(str_repeat('i', count($_SESSION['compare_cars'])), ...$_SESSION['compare_cars']);
$stmt->execute();
$result = $stmt->get_result();
while ($car = $result->fetch_assoc()) {
// Fetch primary image for this car
$img_stmt = $conn->prepare("SELECT image_name FROM car_images WHERE car_id = ? AND is_primary = 1 LIMIT 1");
$img_stmt->bind_param("i", $car['car_id']);
$img_stmt->execute();
$img_res = $img_stmt->get_result();
$car['image'] = '';
if ($img_res->num_rows > 0) {
$car['image'] = $img_res->fetch_assoc()['image_name'];
}
$img_stmt->close();
$compare_cars[] = $car;
}
$stmt->close();
}
?>
<main class="container my-5 pt-5">
<div class="d-flex justify-content-between align-items-center mb-4">
<h1 class="display-5"><i class="fas fa-balance-scale"></i> مقارنة الفئات</h1>
<?php if (!empty($compare_cars)): ?>
<a href="compare.php?clear=1" class="btn btn-outline-danger">
<i class="fas fa-trash"></i> مسح الكل
</a>
<?php endif; ?>
</div>
<?php if (empty($compare_cars)): ?>
<!-- Empty State -->
<div class="compare-empty-state">
<i class="fas fa-balance-scale fa-5x"></i>
<h3>لا توجد فئات للمقارنة</h3>
<p class="text-muted mb-4">اختر فئة محددة لمقارنتها من صفحة تفاصيل السيارة</p>
<a href="cars.php" class="btn btn-danger btn-lg">
<i class="fas fa-car"></i> تصفح السيارات
</a>
</div>
<?php else: ?>
<!-- Comparison Table -->
<div class="compare-table">
<div class="table-responsive">
<table class="table table-dark table-hover mb-0">
<thead class="table-danger">
<tr>
<th scope="col" class="sticky-column">المواصفات</th>
<?php foreach ($compare_cars as $car): ?>
<th scope="col" class="text-center" style="min-width: 250px;">
<div class="position-relative">
<a href="compare.php?action=remove&trim_id=<?= $car['id'] ?>"
class="btn btn-sm btn-outline-light position-absolute top-0 end-0 mt-2 me-2"
title="إزالة من المقارنة">
<i class="fas fa-times"></i>
</a>
<img src="<?= !empty($car['image']) ? 'uploads/cars/' . htmlspecialchars($car['image']) : 'https://via.placeholder.com/200x150' ?>"
class="compare-car-image"
alt="<?= htmlspecialchars($car['car_name']) ?>">
<h6 class="mb-1"><?= htmlspecialchars($car['car_name']) ?></h6>
<small class="text-warning fw-bold"><?= htmlspecialchars($car['name']) ?></small>
<br>
<small class="text-muted"><?= htmlspecialchars($car['brand']) ?></small>
</div>
</th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<!-- Price Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-tag"></i> السعر</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center">
<span class="h5 text-danger"><?= number_format($car['price']) ?> جنيه</span>
</td>
<?php endforeach; ?>
</tr>
<!-- Brand Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-industry"></i> الماركة</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center">
<div class="d-flex align-items-center justify-content-center">
<?php if (!empty($car['brand_logo'])): ?>
<img src="uploads/brands/<?= htmlspecialchars($car['brand_logo']) ?>"
alt="<?= htmlspecialchars($car['brand']) ?>"
style="width: 30px; height: 30px; object-fit: contain; margin-right: 8px;">
<?php endif; ?>
<span><?= htmlspecialchars($car['brand']) ?></span>
</div>
</td>
<?php endforeach; ?>
</tr>
<!-- Model Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-car"></i> الموديل</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= htmlspecialchars($car['model']) ?></td>
<?php endforeach; ?>
</tr>
<!-- Year Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-calendar"></i> سنة الصنع</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= htmlspecialchars($car['year']) ?></td>
<?php endforeach; ?>
</tr>
<!-- Category Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-list"></i> الفئة الهيكلية</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center">
<span class="badge bg-secondary"><?= htmlspecialchars($car['category']) ?></span>
</td>
<?php endforeach; ?>
</tr>
<!-- Fuel Type Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-gas-pump"></i> نوع الوقود</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['fuel_type']) ? htmlspecialchars($car['fuel_type']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<!-- Condition Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-check-circle"></i> حالة السيارة</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['car_condition']) ? htmlspecialchars($car['car_condition']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<!-- Engine Specifications -->
<?php if (array_filter($compare_cars, function($car) { return !empty($car['engine_capacity']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-engine"></i> سعة المحرك</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['engine_capacity']) ? htmlspecialchars($car['engine_capacity']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['transmission_type']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-cogs"></i> ناقل الحركة</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['transmission_type']) ? htmlspecialchars($car['transmission_type']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['horsepower']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-tachometer-alt"></i> القوة الحصانية</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['horsepower']) ? htmlspecialchars($car['horsepower']) . ' حصان' : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['torque']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-bolt"></i> عزم الدوران</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['torque']) ? htmlspecialchars($car['torque']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['acceleration']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-rocket"></i> التسارع 0-100</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['acceleration']) ? htmlspecialchars($car['acceleration']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['top_speed']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-speedometer"></i> السرعة القصوى</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['top_speed']) ? htmlspecialchars($car['top_speed']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['fuel_consumption']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-gas-pump"></i> استهلاك الوقود</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['fuel_consumption']) ? htmlspecialchars($car['fuel_consumption']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['drivetrain']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-road"></i> نظام الدفع</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['drivetrain']) ? htmlspecialchars($car['drivetrain']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['seating_capacity']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-users"></i> عدد المقاعد</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['seating_capacity']) ? htmlspecialchars($car['seating_capacity']) . ' مقعد' : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['body_type']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-car-side"></i> نوع الهيكل</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['body_type']) ? htmlspecialchars($car['body_type']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['exterior_color']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-palette"></i> اللون الخارجي</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['exterior_color']) ? htmlspecialchars($car['exterior_color']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php if (array_filter($compare_cars, function($car) { return !empty($car['interior_color']); })): ?>
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-couch"></i> اللون الداخلي</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center"><?= !empty($car['interior_color']) ? htmlspecialchars($car['interior_color']) : '<span class="text-muted">غير محدد</span>' ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<!-- Description Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-info-circle"></i> الوصف</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center">
<div style="max-height: 100px; overflow-y: auto;">
<?= nl2br(htmlspecialchars(substr($car['description'], 0, 200))) ?>
<?= strlen($car['description']) > 200 ? '...' : '' ?>
</div>
</td>
<?php endforeach; ?>
</tr>
<!-- Actions Row -->
<tr>
<td class="sticky-column fw-bold"><i class="fas fa-cogs"></i> الإجراءات</td>
<?php foreach ($compare_cars as $car): ?>
<td class="text-center">
<div class="compare-actions d-grid gap-2">
<a href="car_details.php?id=<?= $car['car_id'] ?>" class="btn btn-sm btn-outline-light">
<i class="fas fa-eye"></i> عرض التفاصيل
</a>
<a href="visit.php?car_id=<?= $car['car_id'] ?>" class="btn btn-sm btn-danger">
<i class="fas fa-calendar-check"></i> احجز تجربة
</a>
<a href="calculator.php?price=<?= $car['price'] ?>" class="btn btn-sm btn-outline-warning">
<i class="fas fa-calculator"></i> حساب القسط
</a>
</div>
</td>
<?php endforeach; ?>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Add More Cars -->
<?php if (count($compare_cars) < 5): ?>
<div class="text-center mt-4">
<p class="text-muted">يمكنك إضافة حتى <?= 5 - count($compare_cars) ?> فئات أخرى للمقارنة</p>
<a href="cars.php" class="btn btn-outline-light">
<i class="fas fa-plus"></i> تصفح السيارات للإضافة
</a>
</div>
<?php endif; ?>
<?php endif; ?>
</main>
<style>
.sticky-column {
position: sticky;
left: 0;
background-color: var(--dark-color) !important;
z-index: 10;
border-right: 2px solid var(--primary-color);
min-width: 200px;
}
.table-responsive {
max-height: 80vh;
overflow-y: auto;
}
.table th, .table td {
vertical-align: middle;
border-color: rgba(255, 255, 255, 0.2);
}
.table-danger th {
background-color: var(--primary-color) !important;
border-color: var(--primary-color) !important;
}
/* Custom scrollbar */
.table-responsive::-webkit-scrollbar {
width: 8px;
height: 8px;
}
.table-responsive::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.1);
border-radius: 4px;
}
.table-responsive::-webkit-scrollbar-thumb {
background: var(--primary-color);
border-radius: 4px;
}
.table-responsive::-webkit-scrollbar-thumb:hover {
background: #b01030;
}
</style>
<?php include 'includes/footer.php'; ?>