par
yoann38 » 29 août 2019, 14:49
Salut tout le monde,
J'ai terminé mon projet mais je but sur une technologie que je suis loin de maitrisé malheureusement pour moi.
Le but est de permettre à des associations de filtrer les résultat de la requête avec des checkboxes ( wifi, parking, handicap, ...)
Coté Base de donnée j'ai une colonne pour chaque type: wifi, parking, handicap .... qui vaut 1 ou 0 du coup.
Ma requête est :
// Traitement de la pagination
$page = (!empty($_GET['page']) ? (int)$_GET['page'] : 1);
$limite = 4; // Nombre d'élément à afficha dans la page
$debut = ($page - 1) * $limite;
// Requetes bars selon option
$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM associations WHERE ville = :ville';
if (isset($_POST['terasse'])) {
$sql .= ' AND terasse = 1';
} else if (isset($_POST['parking'])) {
$sql .= ' AND parking = 1';
} else if (isset($_POST['wifi'])) {
$sql .= ' AND wifi = 1';
} else if (isset($_POST['restauration'])) {
$sql .= ' AND restauration = 1';
}
$sql .= ' LIMIT :limite OFFSET :debut'; // limite à 5
$sql = $bdd->prepare($sql);
$sql->bindParam(':ville', $ville, PDO::PARAM_STR);
$sql->bindValue('debut', $debut, PDO::PARAM_INT);
$sql->bindValue('limite', $limite, PDO::PARAM_INT);
$sql->execute();
// Calcul de la pagination
$resultFoundRows = $bdd->query('SELECT found_rows()');
$nombredElementsTotal = $resultFoundRows->fetchColumn();
$nombreDePages = ceil($nombredElementsTotal / $limite);
//var_dump($sql);
Coté checkboxes actuellement:
<form id="form" method="post" action="">
<li><label class="container_check">Terrasse
<input type="checkbox" name="terrasse" class="checkbox" <?=(isset($_POST['terrasse'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Wifi
<input type="checkbox" name="wifi" class="checkbox" <?=(isset($_POST['wifi'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Parking
<input type="checkbox" name="parking" class="checkbox" <?=(isset($_POST['parking'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Restauration
<input type="checkbox" name="restauration" class="checkbox" <?=(isset($_POST['restauration'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
</form>
Du coup j'ai conscience que c'est en ajax que je dois faire ça mais je n'y comprends pas grand chose pour le coup, merci pour votre aide
Salut tout le monde,
J'ai terminé mon projet mais je but sur une technologie que je suis loin de maitrisé malheureusement pour moi.
Le but est de permettre à des associations de filtrer les résultat de la requête avec des checkboxes ( wifi, parking, handicap, ...)
Coté Base de donnée j'ai une colonne pour chaque type: wifi, parking, handicap .... qui vaut 1 ou 0 du coup.
Ma requête est :
[PHP]
// Traitement de la pagination
$page = (!empty($_GET['page']) ? (int)$_GET['page'] : 1);
$limite = 4; // Nombre d'élément à afficha dans la page
$debut = ($page - 1) * $limite;
// Requetes bars selon option
$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM associations WHERE ville = :ville';
if (isset($_POST['terasse'])) {
$sql .= ' AND terasse = 1';
} else if (isset($_POST['parking'])) {
$sql .= ' AND parking = 1';
} else if (isset($_POST['wifi'])) {
$sql .= ' AND wifi = 1';
} else if (isset($_POST['restauration'])) {
$sql .= ' AND restauration = 1';
}
$sql .= ' LIMIT :limite OFFSET :debut'; // limite à 5
$sql = $bdd->prepare($sql);
$sql->bindParam(':ville', $ville, PDO::PARAM_STR);
$sql->bindValue('debut', $debut, PDO::PARAM_INT);
$sql->bindValue('limite', $limite, PDO::PARAM_INT);
$sql->execute();
// Calcul de la pagination
$resultFoundRows = $bdd->query('SELECT found_rows()');
$nombredElementsTotal = $resultFoundRows->fetchColumn();
$nombreDePages = ceil($nombredElementsTotal / $limite);
//var_dump($sql);
[/PHP]
Coté checkboxes actuellement:
[PHP]
<form id="form" method="post" action="">
<li><label class="container_check">Terrasse
<input type="checkbox" name="terrasse" class="checkbox" <?=(isset($_POST['terrasse'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Wifi
<input type="checkbox" name="wifi" class="checkbox" <?=(isset($_POST['wifi'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Parking
<input type="checkbox" name="parking" class="checkbox" <?=(isset($_POST['parking'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Restauration
<input type="checkbox" name="restauration" class="checkbox" <?=(isset($_POST['restauration'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
</form>
[/PHP]
Du coup j'ai conscience que c'est en ajax que je dois faire ça mais je n'y comprends pas grand chose pour le coup, merci pour votre aide