1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| <?php
require_once("application_top.php");
require_once("template/class/mysqlClass.php");
require_once("template/class/paginationClass.php");
?>
<h1><img src="template/images/h1-catalogue.png"></h1>
<br /><br />
<?php
// print_r($_SESSION);
if(!empty($_POST)) {
$_SESSION['recherche'] = array();
}
if(!empty($_SESSION['recherche'])) {
$recherche = $_SESSION['recherche'];
//echo $recherche;
} else {
$recherche = "";
if (!empty($_GET['tarif'])) {
$tarif = explode("-", $_GET['tarif']);
} else {
$tarif = explode("-", $_POST['tarif']);
}
$tarif_min = $tarif[0]; // tarif min
$tarif_max = $tarif[1]; // tarif max
//echo $tarif_min." / ".$tarif_max;
if (!empty($_GET['type'])) {
$recherche .= "AND type LIKE '%".$_GET['type']."%'"; }
if (!empty($_GET['periode'])) {
$recherche .= " AND date_debut LIKE '%".$_GET['periode']."%'"; }
if (!empty($_GET['tarif'])) {
$recherche .= " AND tarif > ".$tarif_min." AND tarif < ".$tarif_max.""; }
if (!empty($_POST['type'])) {
$recherche .= " AND type LIKE '%".$_POST['type']."%'"; }
if (!empty($_POST['periode'])) {
$recherche .= " AND month(date_debut)=".$_POST['periode']; }
if (!empty($_POST['tarif'])) {
$recherche .= " AND tarif > ".$tarif_min." AND tarif < ".$tarif_max.""; }
//if (empty($recherche)) { $recherche = ''; }
$_SESSION['recherche'] = $recherche;
}
/* Calcul du nombre total d'entrées $total dans la table posts */
$sql1 = new DB();
$query1 = "SELECT COUNT(*) FROM catalogue AS c LEFT JOIN catalogue_dates AS cd ON c.id = cd.catalogue_id WHERE c.id!=0 ".$recherche." ORDER BY date_debut ASC";
//echo $query1;
$sql1->query($query1);
while ($pagine = $sql1->next_record()) {
$total = $pagine[0];
}
/* Déclaration des variables */
$epp = 5; // nombre d'entrées à afficher par page (entries per page)
$countp = ceil($total/$epp); // calcul du nombre de pages $countp (on arrondit à l'entier supérieur avec la fonction ceil() )
/* Récupération du numéro de la page courante depuis l'URL avec la méthode GET */
if(!isset($_GET['p']) || !is_numeric($_GET['p']) ) // si $_GET['p'] n'existe pas OU $_GET['p'] n'est pas un nombre (petite sécurité supplémentaire)
$current = 1; // la page courante devient 1
else
{
$page = intval($_GET['p']); // stockage de la valeur entière uniquement
if ($page < 1) $current=1; // cas où le numéro de page est inférieure à 1 : on affecte 1 à la page courante
elseif ($page > $countp) $current=$countp; //cas où le numéro de page est supérieur au nombre total de pages : on affecte le numéro de la dernière page à la page courante
else $current=$page; // sinon la page courante est bien celle indiquée dans l'URL
}
/* $start est la valeur de départ du LIMIT dans notre requête SQL (est fonction de la page courante) */
$start = ($current * $epp - $epp);
$test_id = array();
$sql = new DB();
$query = "SELECT distinct * FROM catalogue AS c LEFT JOIN catalogue_dates AS cd ON c.id = cd.catalogue_id WHERE c.id!=0 ".$recherche." ORDER BY date_debut ASC LIMIT $start, $epp";
//print_r($query);
$sql->query($query);
while ($cata = $sql->next_record()) {
if (in_array($cata['0'], $test_id)) {
//echo "deja present";
} else {
array_push($test_id, $cata['0']);
//print_r($test_id);
?> |
Partager