35324-vm/search.php
Flatlogic Bot 9584826cb1 v3
2025-10-29 10:27:50 +00:00

90 lines
3.2 KiB
PHP

<?php
require_once 'db/config.php';
$q = trim($_GET['q'] ?? '');
$category_id = $_GET['category'] ?? null;
$pageTitle = "Risultati della ricerca";
$pageDescription = "Servizi trovati per la tua ricerca.";
$results = [];
$error = null;
try {
$pdo = db();
$sql = "SELECT s.*, u.first_name, u.last_name, sc.name as category_name
FROM services s
JOIN users u ON s.provider_id = u.id
JOIN service_categories sc ON s.category_id = sc.id
WHERE u.user_type = 'provider'";
$params = [];
if (!empty($q)) {
$sql .= " AND (s.name LIKE ? OR s.description LIKE ?)";
$params[] = "%$q%";
$params[] = "%$q%";
}
if (!empty($category_id)) {
$sql .= " AND s.category_id = ?";
$params[] = $category_id;
}
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$results = $stmt->fetchAll();
} catch (PDOException $e) {
$error = "Errore del database: " . $e->getMessage();
}
require_once '_header.php';
?>
<main class="container my-5">
<h1 class="mb-4">Ricerca servizi</h1>
<div class="card mb-4">
<div class="card-body">
<form action="search.php" method="GET" class="row g-3">
<div class="col-md-8">
<input type="text" class="form-control" name="q" placeholder="Cosa stai cercando?" value="<?= htmlspecialchars($q) ?>">
</div>
<div class="col-md-4">
<button type="submit" class="btn btn-primary w-100">Cerca di nuovo</button>
</div>
</form>
</div>
</div>
<?php if ($error): ?>
<div class="alert alert-danger"><?= htmlspecialchars($error) ?></div>
<?php elseif (empty($results)): ?>
<div class="alert alert-info">Nessun servizio trovato per la tua ricerca.</div>
<?php else: ?>
<p class="text-muted">Trovati <?= count($results) ?> risultati.</p>
<div class="row g-4">
<?php foreach ($results as $service): ?>
<div class="col-md-6 col-lg-4">
<div class="card h-100">
<div class="card-body d-flex flex-column">
<h5 class="card-title"><?= htmlspecialchars($service['name']) ?></h5>
<h6 class="card-subtitle mb-2 text-muted"><?= htmlspecialchars($service['category_name']) ?></h6>
<p class="card-text flex-grow-1"><?= nl2br(htmlspecialchars(substr($service['description'], 0, 100))) . (strlen($service['description']) > 100 ? '...' : '') ?></p>
<p class="fs-5 fw-bold text-end mb-3">€ <?= htmlspecialchars(number_format($service['price'], 2, ',', '.')) ?></p>
<div class="mt-auto">
<p class="mb-1"><small>Offerto da: <?= htmlspecialchars($service['first_name'] . ' ' . $service['last_name']) ?></small></p>
<a href="#" class="btn btn-primary w-100 disabled">Vedi Dettagli</a>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</main>
<?php
require_once '_footer.php';
?>