Page 1 sur 1

Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 10:56
par Lilou000
Bonjour à tous,

J'ai un moteur de recherche avec des champs déroulants et cases à cocher.
J'affiche 20 résultats par page et j'ai donc une pagination.

Au changement de page, si j'ai sélectionné un critère dans la liste déroulante, pas de soucis, ça garde bien en mémoire le critère.
Par contre, si je coche une option, et que je change de page, le système ne garde pas en mémoire le fait que j'ai coché la case.

Un exemple de champs type liste déroulante qui fonctionne :
function loadPostData() {
		if(isset($_POST['marque'])) 			$this->marque = $_POST['marque'];
Et la même chose pour une checkbox :
if(isset($_POST['gps']))				$this->gps = $_POST['gps'];

Sachant que mon code pour afficher la checkbox est :
<div class="champs">
		  <input style="padding-right:5px;" id="gps" type="checkbox" name="gps[]"<?php echo (empty($_POST['gps'])) ? '' : ' checked="checked"' ?> />
          <label style="padding-right:5px;" for="gps">GPS</label>
</div>
Si quelqu'un peut me donner un coup de main ;-)

Merci !

Re: Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 12:42
par moogli
salut,

quelle est la différence entre l'affichage de la checkbox et de la liste déroulante ? (c'est al réponse as ta question ;) ).

je suppose que l'objet que tu indique, est stockée en session ?

si oui c'est à partir de lui que tu doit gérer ton affichage dans le formulaire ;)

Ton fonctionne bien comme tu l'indique si $_POST['gps'] n'existe pas au moment où tu affiche le formulaire.

@+

Re: Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 12:54
par Lilou000
En fait, dans mon fichier class.vehicule.php j'ai :
function loadGetData() {
		if($_GET['marque']) {
			$this->marque = strtr($_GET['marque'],'-',' ');
			$this->modele = $_GET['modele'];
		}
		if(isset($_GET['neuf'])){
			$this->neuf	  = $_GET['neuf'];
		}
                if(isset($_GET['order']))
                {
                    $this->order          = $_GET['order'];
                }
                if(isset($_GET['categorie']))
                {
                    $this->categorie          = $_GET['categorie'];
                }
                if(isset($_GET['prix_min']))
                {
                    $this->prix_min          = $_GET['prix_min'];
                }
                if(isset($_GET['prix_max']))
                {
                    $this->prix_max          = $_GET['prix_max'];
                }
                if(isset($_GET['kms_min']))
                {
                    $this->kms_min          = $_GET['kms_min'];
                }
                if(isset($_GET['kms_max']))
                {
                    $this->kms_max          = $_GET['kms_max'];
                }
				 if(isset($_GET['lieu']))
                {
                    $this->lieu          = $_GET['lieu'];
                }
                if(isset($_GET['promos']))
                {
                    $this->promos          = 1;
                }

	}

	function loadPostData() {
		if(isset($_POST['marque'])) 			$this->marque = $_POST['marque'];
		if(isset($_POST['modele'])) 			$this->modele = $_POST['modele'];
		if(isset($_POST['version'])) 			$this->version = $_POST['version'];
		if(isset($_POST['boite'])) 				$this->boite = $_POST['boite'];
		if(isset($_POST['porte'])) 				$this->porte = $_POST['porte'];
		if(isset($_POST['sellerie'])) 			$this->sellerie = $_POST['sellerie'];
		if(isset($_POST['lieu'])) 				$this->lieu = $_POST['lieu'];
		if(isset($_POST['motorisation'])) 		$this->motorisation = $_POST['motorisation'];
        if(isset($_POST['type']))               $this->type         = $_POST['type'];
		if(isset($_POST['prix_min'])) 			$this->prix_min = $_POST['prix_min'];
		if(isset($_POST['prix_max']) && $_POST['prix_max']!='100000') 		$this->prix_max = $_POST['prix_max'];
		if(isset($_POST['prix_marchand_min'])) 	$this->prix_marchand_min = $_POST['prix_marchand_min'];
		if(isset($_POST['prix_marchand_max'])) 	$this->prix_marchand_max = $_POST['prix_marchand_max'];
		if(isset($_POST['kms_min'])) 			$this->kms_min = $_POST['kms_min'];
		if(isset($_POST['kms_max']))			$this->kms_max = $_POST['kms_max'];
		if(isset($_POST['annee_min'])) 			$this->annee_min = $_POST['annee_min'];
		if(isset($_POST['annee_max'])) 			$this->annee_max = $_POST['annee_max'];
		if(isset($_POST['millesime_min'])) 		$this->millesime_min = $_POST['millesime_min'];
		if(isset($_POST['millesime_max'])) 		$this->millesime_max = $_POST['millesime_max'];
		if(isset($_POST['utilitaire'])) 		$this->utilitaire = $_POST['utilitaire'];
		else									$this->utilitaire = false;
		if(isset($_POST['neuf'])) 				$this->neuf = $_POST['neuf'];
		if(isset($_POST['categorie']))			$this->categorie = $_POST['categorie'];
		if(isset($_POST['promo']))				$this->promo = $_POST['promo'];
		if(isset($_POST['gps']))				$this->gps = $_POST['gps'];
		if(isset($_POST['radarderecul']))		$this->radarderecul = $_POST['radarderecul'];
		if(isset($_POST['places7']))			$this->places7 = $_POST['places7'];
		if(isset($_POST['places9']))			$this->places9 = $_POST['places9'];
		if(isset($_POST['climatisation']))		$this->climatisation = $_POST['climatisation'];
		if(isset($_POST['toitouvrant']))		$this->toitouvrant = $_POST['toitouvrant'];
		if(isset($_POST['toitpano']))			$this->toitpano = $_POST['toitpano'];

	}

	function loadSessionData() {

	}
Et dans ma page index.php qui contient mon moteur de recherche avec ma liste de véhicules :
$vh->nbParPage = 16;

if(!$_GET['back'])
{
////////// Récupération page en cours
    if(!$_GET['page']) {
            $page = 1;
            $vh->reset();
    }
    else{
            $page = $_GET['page'];
    }
////////Récupération des données POST
    if(!empty($_POST)) {
            /* hack pour les prix min et max */
            if($_POST['mini'] != '~')
            {
                $_POST['prix_min'] = $_POST['mini'];
            }
            if($_POST['maxi'] != '~')
            {
                $_POST['prix_max'] = $_POST['maxi'];
            }
            
            $vh->loadPostData($_POST);
    }
    ////////// Récupération des données GET
    else $vh->loadGetData($_GET);
Du coup, je vois pas trop quoi modifier ^^ ...
Merci de ta réponse en tout cas !

Re: Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 13:16
par moogli
Et le code d'affichage du formulaire? c'est lui qui va être utile ;)

@+

Re: Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 13:39
par Lilou000
Un bout de code de mon formulaire :
<!--CHAMPS EXPO-->
<div class="champs">
		  <label for="lieuexpo">Lieu d'exposition</label>
		<select name="lieu" id="lieuexpo">
		  <option value="">Tous</option>
		  <?php
			$lieux=$vh->getPopulatedLieux();
			foreach($lieux as $lieu){
			  echo "<option value=\"$lieu\" ".(($lieu == $vh->lieu)?'selected="selected"':'').">$lieu</option>";
			}
		  ?>
		</select>
</div>
<!--FIN CHAMPS EXPO-->
</div>

    <!--COLONNE CHAMPS SUPP 1-->
<div id="conteneur-champs" style="width:150px;">
<div class="champs">
		  <input style="padding-right:5px;" id="gps" type="checkbox" name="gps[]"<?php echo (empty($_POST['gps'])) ? '' : ' checked="checked"' ?> />
          <label style="padding-right:5px;" for="gps">GPS</label>
</div>
<div class="champs">
		  <input style="padding-right:5px;" id="radarderecul" type="checkbox" name="radarderecul[]"<?php echo (empty($_POST['radarderecul'])) ? '' : ' checked="checked"' ?> />
          <label style="padding-right:5px;" for="radarderecul">RADAR DE RECUL</label>
</div>
</div>
<!--FIN COLONNE CHAMPS SUPP 1-->

Re: Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 13:58
par moogli
echo "<option value=\"$lieu\" ".(($lieu == $vh->lieu)?'selected="selected"':'').">$lieu</option>";


a priori les données utiles sont dans l'objet $vh, donc ton test doit se baser dessus.
<?php echo (empty($vh->gps)) ? '' : ' checked="checked"' ?>
idem pour les autres données.


si tu veux savoir ce que contient l'objet $vh ajoute un echo '<pre>',var_dump($vh),'</pre>'; sur ta page tu verras tous ce que contient l'objet.

tu peux aussi voir du coté d'un debuguer ;) (xdebug par exemple)


@+

Re: Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 14:08
par Lilou000
En ajoutant un echo var dump, quand je coche GPS, j'ai :
["gps"]=>
  array(1) {
    [0]=>
    string(2) "on"
  }
Ce que je ne comprend pas, c'est que quand je passe en page 2, j'ai la même chose, comme si il gardait en mémoire, mais les résultats de recherche m'affichent toutes les voitures, même celles sans GPS...

Re: Récupérer valeur checkbox au changement de page

Posté : 11 avr. 2013, 21:35
par moogli
c'est pas possible qu'il n'y ai que ça dans $vh vu qu'il y a les données de la liste déroulante.


si tu ne poste pas le code complet (sans user / mdp possible) on peu pas trop t'aider.



tu peux aussi demander de l'aide à la personne qui a fait le code ?


@+

Re: Récupérer valeur checkbox au changement de page

Posté : 12 avr. 2013, 08:58
par Lilou000
Ci-dessous je mets les fichiers concernés, peut-être que ça pourra donner une piste à quelqu'un :wink:

Merci en tout cas !

PAGE INDEX.PHP qui contient le moteur de recherche et affiche les résultats:
<?php
session_cache_limiter('private, must-revalidate'); 
include 'include/config.php';
$vh->nbParPage = 16;

if(!$_GET['back'])
{
////////// Récupération page en cours
    if(!$_GET['page']) {
            $page = 1;
            $vh->reset();
    }
    else{
            $page = $_GET['page'];
    }
////////Récupération des données POST
    if(!empty($_POST)) {
            /* hack pour les prix min et max */
            if($_POST['mini'] != '~')
            {
                $_POST['prix_min'] = $_POST['mini'];
            }
            if($_POST['maxi'] != '~')
            {
                $_POST['prix_max'] = $_POST['maxi'];
            }
            
            $vh->loadPostData($_POST);
    }
    ////////// Récupération des données GET
    else $vh->loadGetData($_GET);

//////// Récupération des annonces
$vh->page = $page;
}

$annonces = $vh->search();


$navLinks = $vh->getNavLinks();
$priceList = array(
        2000,
        4000,
        6000,
        8000,
        10000,
        12000,
        14000,
        16000,
        18000,
        20000,
        25000,
        30000,
        35000,
        40000,
        50000,
        100000
    );
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>xxxxxxxx</title>
<!--[if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--STYLES-->
<link rel="stylesheet" type="text/css" href="../css/styles.css" />
<!--TYPOS-->
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700' rel='stylesheet' type='text/css'>
<!--MODERNIZR-->
<script type="text/javascript" src="../js/modernizr.custom.24399.js"></script>
<!--JQUERY-->
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<!--SCRIPT NAVIGATION-->
<link rel="stylesheet" href="../css/megamenu.css">
<script type="text/javascript" src="../js/megamenu_plugins.js"></script>
<script type="text/javascript" src="../js/megamenu.js"></script>
<script>
$(document).ready(function($){
    $('.megamenu').megaMenuCompleteSet({
        menu_speed_show : 300,
        menu_speed_hide : 200,
        menu_speed_delay : 200,
        menu_effect : 'hover_slide',
        menu_click_outside : 1,
        menu_show_onload : 0
    });

});
</script>
<!-- LOADER IMAGE -->
<script src="/js/jquery.preloadify.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$(".loading-photo").preloadify({ force_icon:true
});
});
</script>
<!--CRITERES SUPPLEMENTAIRES-->
<script type="text/javascript">
$(document).ready(function(){

	$(".btn-slide").click(function(){
		$("#panel").slideToggle("slow");
		$(this).toggleClass("active"); return false;
	});
	
	 
});
</script>
<!-- SLIDER PRIX -->
<script charset="utf-8" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui-1.7.1.custom.min.js"></script>
<script type="text/javascript" src="../js/selectToUISlider.jQuery.js"></script>
<link rel="stylesheet" href="../css/slider-prix/redmond/jquery-ui-1.7.1.custom.css" type="text/css" />
<link rel="Stylesheet" href="../css/slider-prix/ui.slider.extras.css" type="text/css" />
<!--SOCIAL-->
<link rel="stylesheet" media="screen" href="../arscode-social-slider/fblb.css"/>
<!--[if lte IE 7]>
<link rel="stylesheet" media="screen" href="../arscode-social-slider/ie7.css?ver=3.2.1" />
<![endif]-->
<script type="text/javascript" src="../arscode-social-slider/js/userscripts.js"></script>
<!--[if lte IE 7]>
<script type="text/javascript" src="../arscode-social-slider/js/userscripts-ie7.js"></script>
<![endif]-->
<!--VIDEO BACKGROUND
<script type="text/javascript" src="../js/jquery.mb.YTPlayer.js"></script>
<link href="../css/YTPlayer.css" media="all" rel="stylesheet" type="text/css">
<script>
jQuery(function(){
	jQuery(".player").mb_YTPlayer();
});

	</script>-->
</head>

<body>
<!--HEADER-->
<?php include("../inc/header.php");?>
<!--FIN HEADER-->
<!--NAVIGATION-->
<?php include("../inc/menu.php");?>
<!--FIN NAVIGATION-->

<!--CONTENEUR PAGE-->
<div id="conteneur-page" style="padding-top:0px;">

<!--MOTEUR DE RECHERCHE-->
<div id="conteneur-moteur">
<form action="../occasions/index.php" method="post" id="moteur_form2">
<!--COLONNE CHAMPS 1-->
<div id="conteneur-champs">
<!--CHAMPS MARQUE-->
<div class="champs">
		  <label for="marque">MARQUE</label>
		  <select name="marque" id="marque" onchange="loadModeles(this)">
		  <option value="">Toutes les marques</option>
		  <?php
		  $marques = $vh->getPopulatedMarques();
		  $_DATA['marques'] = $marques;
		  foreach($marques as $marque) {
			if($marque)
				if(strtoupper($vh->marque) == $marque) echo '<option value="'.$marque.'" selected="selected">'.ucfirst(strtolower($marque)).'</option>';
				else echo '<option value="'.$marque.'">'.ucfirst(strtolower($marque)).'</option>';
		  }
		  ?>
		</select>
</div>
<!--FIN CHAMPS MARQUE-->
<div class="champs">        
			<label for="modele">MODÈLE</label>
            <select name="modele"<?=((empty($vh->marque))?' disabled="disabled"':null)?> id="modele" >
		  	<option value="">Tous les modèles</option>
		  <?
			if(!empty($vh->marque)){
			  $modeles=$vh->getPopulatedModeles($vh->marque);
			  foreach($modeles as $modele){
				echo '<option value="'.$modele.'"'.((strtoupper($vh->modele)==$modele)?' selected="selected"':null).'>'.$modele.'</option>';
			  }
			}
		  ?>
		</select>
	</div>
</div>
<!--FIN COLONNE CHAMPS 1-->

<!--COLONNE CHAMPS 2-->
<div id="conteneur-champs">
<!--CHAMPS CATEGORIE-->
<div class="champs">
		  <label for="categorie">CATÉGORIE</label>
		  <select name="categorie" id="categorie">
		  <option value="">Toutes les catégories</option>
		  <?php
			$categories=$vh->getCategories();
			foreach($categories as $categorie){
			  echo "<option value=\"$categorie\" ".((strtolower($categorie) == strtolower($vh->categorie))?'selected="selected"':'').">". ucfirst(strtolower($categorie)) . "</option>";
			}
		  ?>
		</select>
</div>
<!--FIN CHAMPS CATEGORIE-->
<div class="champs">        
			<label for="modele">ÉNERGIE</label>
            <select name="motorisation" id="energie">
		  <option value="">Toutes les énergies</option>
		  <?php
			$motorisations=$vh->getMotorisations();
			foreach($motorisations as $motorisation){
			  echo "<option value=\"$motorisation\" ".(($motorisation == $vh->motorisation)?'selected="selected"':'').">$motorisation</option>";
			}
		  ?>
		</select>
	</div>
</div>
<!--FIN COLONNE CHAMPS 2-->

<!--COLONNE CHAMPS 3-->
<div class="champs" style="padding-left:40px;">
<div id="wrapperslider" style="width:405px; margin-top:10px;">
		<p align="center" style="font-family: 'Montserrat', sans-serif; color:#232323;"><label for="mini">VOTRE BUDGET</label></p>
        <div style=" margin-top:-10px;">
		<select name="mini" id="mini" style="visibility:hidden; height:1px;">
			<option value="0" selected="selected" >0 €</option>
                        <?php foreach($priceList as $price) { ?>
                            <option value="<?=$price?>" <?php if($price == $vh->prix_min) { ?> selected="selected" <?php } ?>><?=$price?> €</option>
                        <?php } ?>
			<option value="~">+ 100.000€</option>

		</select>
		<select name="maxi" id="maxi" style="visibility:hidden; height:1px;">
			<option value="null">Prix maximum</option>
                        <?php foreach($priceList as $price) { ?>
                            <option value="<?=$price?>" <?php if($price == $vh->prix_max) { ?> selected="selected" <?php } ?>><?=$price?> €</option>
                        <?php } ?>
			<option value="~" <?php if(!$vh->prix_max || !in_array($vh->prix_max, $priceList) || $vh->prix_max == '~') { ?> selected="selected" <?php } ?>>+ 100000 €</option>
		</select>
                
        </div>
	</div>
</div>
<!--[if IE]>
  <div id="btn-recherche-generale" style="padding-top:50px;"><input type="submit" name="submit" value="submit" /></div>
<![endif]-->
<!--[if !IE]><!-->
<div id="btn-recherche-generale"><input type="submit" name="submit" value="submit" /></div><!--<![endif]-->
<!--FIN COLONNE CHAMPS 3-->
</div>
<div id="panel">
	<!--CHAMPS SUPPLEMENTAIRES-->
<div id="conteneur-champs" style="width:140px;">
<!--CHAMPS KMS-->
<div class="champs" style="width:140px;">
		  <label class="l2 km">Kilométrage minimum</label>
		<select name="kms_min" class="kms" id="kms_min" onchange="updateKmsMax(this.value);" >
		  <?
			$selected=($vh->kms_min)?$vh->kms_min:0;
			for($i=0;$i<=95000;$i+=5000){
			  echo '<option value="'.$i.'"'.(($i==$selected)?' selected="selected"':null).'>'.(($i==100000)?'+ de ':null).number_format($i,0,'',' ').'</option>';
			}
		  ?>
		</select>
      </div>
        <div class="champs">
		  <label style="float:left" class="l2 an">Année de</label>
		<select name="millesime_min" id="an_min" class="an" onchange="updateAnMax(this.value);" style="clear:both; float:left">
		  <?
			$selected=($_POST['millesime_min'])?$_POST['millesime_min']:1990;
			for($i=1985;$i<=intval(date('Y'))-1;$i++){
			  echo '<option value="'.$i.'"'.(($i==$selected)?' selected="selected"':null).'>'.$i.'</option>';
			}
		  ?>
		</select>
        </div>
<!--FIN CHAMPS KMS-->
</div> 
<div id="conteneur-champs">
<!--CHAMPS ANNEE-->
<div class="champs">
        <label class="l2 km">Kilométrage maximum</label>
		<select class="kms" name="kms_max" id="kms_max" onchange="updateKmsMin(this.value);">
		  <?
			$selected=($vh->kms_max)?$vh->kms_max:100000;
			for($i=100000;$i>=10000;$i-=5000){
			  echo '<option value="'.$i.'"'.(($i==$selected)?' selected="selected"':null).'>'.(($i==100000)?'+ de ':null).number_format($i,0,'',' ').'</option>';
			}
		  ?>
		</select>
</div>
        <div class="champs">
        <label style="float:left" class="l2 an">jusqu'à</label>
		<select name="millesime_max" class="an" id="an_max" onchange="updateAnMin(this.value);" style="clear:both; float:left">
		  <?
			$selected=($_POST['millesime_max'])?$_POST['millesime_max']:intval(date('Y'));
			for($i=intval(date('Y'));$i>=1991;$i--){
			  echo '<option value="'.$i.'"'.(($i==$selected)?' selected="selected"':null).'>'.$i.'</option>';
			}
		  ?>
		</select>
</div>
<!--FIN CHAMPS ANNEE-->
</div>   
<div id="conteneur-champs">
<!--CHAMPS BOITE-->
<div class="champs">
		  <label for="vitesses">Boite de vitesse</label>
   <select name="boite" id="vitesses">
      <?php
         $boites = $vh->getPopulatedBoites();
         foreach($boites as $key => $boite){
           echo "<option value=\"$key\" ".(($key == $vh->boite)?'selected="selected"':'').">$boite</option>";
         }
      ?>
   </select>
</div>
<!--FIN CHAMPS BOITE-->
<!--CHAMPS PORTES-->
<div class="champs">
		  <label for="nbportes">Nombre de portes du vo</label>
		<select name="porte" id="nbportes">
		  <option value="">Toutes</option>
		  <?php
			$portes=$vh->getPopulatedPortes();
			foreach($portes as $porte){
			  echo "<option value=\"$porte\" ".(($porte == $vh->porte)?'selected="selected"':'').">$porte</option>";
			}
		  ?>
		</select>
</div>
<!--FIN CHAMPS PORTES-->
</div>
<div id="conteneur-champs">
<!--CHAMPS BOITE-->
<div class="champs">
		  <label for="typesellerie">Type de sellerie</label>
		  <select name="sellerie" id="typesellerie" style="clear:both; float:left">
		  <option value="">Toutes</option>
		  <?php
			$selleries=$vh->getPopulatedSelleries();
			foreach($selleries as $sellerie){
			  echo "<option value=\"$sellerie\" ".(($sellerie == $vh->sellerie)?'selected="selected"':'').">$sellerie</option>";
			}
		  ?>
		</select>
</div>
<!--FIN CHAMPS BOITE-->
<!--CHAMPS EXPO-->
<div class="champs">
		  <label for="lieuexpo">Lieu d'exposition</label>
		<select name="lieu" id="lieuexpo">
		  <option value="">Tous</option>
		  <?php
			$lieux=$vh->getPopulatedLieux();
			foreach($lieux as $lieu){
			  echo "<option value=\"$lieu\" ".(($lieu == $vh->lieu)?'selected="selected"':'').">$lieu</option>";
			}
		  ?>
		</select>
</div>
<!--FIN CHAMPS PORTES-->
</div>

    <!--COLONNE CHAMPS SUPP 1-->
<div id="conteneur-champs" style="width:150px;">
<div class="champs">
		  <input style="padding-right:5px;" id="gps" type="checkbox" name="gps[]"<?php echo (empty($_POST['gps'])) ? '' : ' checked="checked"' ?> />
          <label style="padding-right:5px;" for="gps">GPS</label>
</div>
<div class="champs">
		  <input style="padding-right:5px;" id="radarderecul" type="checkbox" name="radarderecul[]"<?php echo (empty($_POST['radarderecul'])) ? '' : ' checked="checked"' ?> />
          <label style="padding-right:5px;" for="radarderecul">RADAR DE RECUL</label>
</div>
</div>
<!--FIN COLONNE CHAMPS SUPP 1-->

<!--COLONNE CHAMPS SUPP 2-->
<div id="conteneur-champs" style="width:150px;">
<div class="champs" style="width:130px;">
	    <input style="padding-right:5px;" id="places7" type="checkbox" name="places7[]"<?php echo (empty($_POST['places7'])) ? '' : ' checked="checked"' ?> />
        <label style="padding-right:5px;" for="places7" >7 PLACES</label>
</div>
<div class="champs">
	    <input style="padding-right:5px;" id="places9" type="checkbox" name="places9[]"<?php echo (empty($_POST['places9'])) ? '' : ' checked="checked"' ?> />
        <label style="padding-right:5px;" for="places9">9 PLACES</label>
</div>
</div>
<!--FIN COLONNE CHAMPS SUPP 2-->
<!--COLONNE CHAMPS SUPP 3-->
<div id="conteneur-champs" style="width:150px;">
<div class="champs">
	    <input style="padding-right:5px;" id="climatisation" type="checkbox" name="climatisation[]"<?php echo (empty($_POST['climatisation'])) ? '' : ' checked="checked"' ?> />
        <label style="padding-right:5px;" for="climatisation">CLIMATISATION</label>
</div>
<div class="champs">
		  <input style="padding-right:5px;" id="toitouvrant" type="checkbox" name="toitouvrant[]"<?php echo (empty($_POST['toitouvrant'])) ? '' : ' checked="checked"' ?> />
          <label style="padding-right:5px;" for="toitouvrant">TOIT OUVRANT</label>
</div>
</div>
<!--FIN COLONNE CHAMPS SUPP 3-->
<!--COLONNE CHAMPS SUPP 4-->
<div id="conteneur-champs" style="width:150px;">
<div class="champs">
		  <input style="padding-right:5px;" id="toitpano" type="checkbox" name="toitpano[]"<?php echo (empty($_POST['toitpano'])) ? '' : ' checked="checked"' ?> />
          <label style="padding-right:5px;" for="toitpano">TOIT PANORAMIQUE</label>
</div>
</div>
<!--FIN COLONNE CHAMPS SUPP 4-->

    <!--FIN CHAMPS SUPPLEMENTAIRES-->
  </form>
</div>

<p class="slide"><a href="#" class="btn-slide">+ DE CRITÈRES</a></p>
<!--FIN MOTEUR DE RECHERCHE-->

<!--AFFICHAGE STOCK-->
<?php
////// Fonction qui choisi le rewritting à utiliser pour la navigation
function getTempUrl($page,$order = '') {
	global $action;
	if($_GET['marque'] && $_GET['modele']) return getModeleUrl($_GET['marque'], $_GET['modele'], $page, $order);
	elseif($_GET['marque']) return getMarqueUrl($_GET['marque'], $page, $order);
	else return getListeAnnoncesUrl($page, $order, substr($action,0,strrpos($action,'.')));
}
?>
<!--SI AUCUN VO EN STOCK CORRESPONDANT A LA RECHERCHE-->
<div style="clear:both"></div>
<?php if(empty($annonces)){ ?>
<div style="padding:10px; float:left;">Il n'y a pas de résultat pour votre recherche.</div>
<span style="color: #53524D; font-size: 14px; margin:10px">Vous pouvez effectuer une nouvelle recherche <a href="index.php">en cliquant ici</a> ou supprimer quelques critères.</span><br /><br />
<!--SINON TRIER LES RESULTATS-->
<?
}
else {
if($vh->order) {
$order = explode('-',$vh->order);
if($order[1] == 'asc') $order[2] = 'desc';
else $order[2] = 'asc';
}
?>
<!--CADRE TRI-->
<div id="cadre-tri">
	<p class="pagination-tri"><?php
					
					echo '<span style="float:left;">'.$navLinks['NB'].' résultats - '.$navLinks['NBPAGES'].' pages &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="float:right">';
							
					if($navLinks['DEBUT'] > 1) echo '<a href="'.getTempUrl(1,$_GET['tri']).'" class="nav">|<</a>';
					if($page > 1) echo '<a href="'.getTempUrl($page-1,$_GET['tri']).'" class="nav"><</a>';

					for($i = $navLinks['DEBUT'];$i <= $navLinks['FIN'];$i++) {
						if($i == $page) echo '<a href="'.getTempUrl($i,$_GET['tri']).'" class="current">'.$i.'</a>';
						else echo '<a href="'.getTempUrl($i,$_GET['tri']).'">'.$i.'</a>';
					}
					if($navLinks['FIN'] < $navLinks['NBPAGES']) echo '<a href="'.getTempUrl($page + 1,$_GET['tri']).'" class="nav">></a><a href="'.getTempUrl($navLinks['NBPAGES'],$_GET['tri']).'" class="nav">>|</a></span>';		
					?></p>

	<p class="txt-cadre-tri">TRIER PAR: <a href="<?php echo getTempUrl($page,'km-'.($order[0] == 'km' ? $order[2] : 'asc')); ?>" class="<?=($order[0] == 'km' ? $order[1] : '')?>"><span style="padding-left:10px; padding-right:10px;">Kilométrage</span></a> | <a href="<?php echo getTempUrl($page,'millesime-'.($order[0] == 'millesime' ? $order[2] : 'asc')); ?>" class="<?=($order[0] == 'millesime' ? $order[1] : '')?>"><span style="padding-left:10px; padding-right:10px;">Année</span></a> | <a href="<?php echo getTempUrl($page,'prix-'.($order[0] == 'prix' ? $order[2] : 'asc')); ?>" class="<?=($order[0] == 'prix' ? $order[1] : '')?>"><span style="padding-left:10px; padding-right:10px;">Prix</span></a></p>
</div>
<!--FIN CADRE TRI-->
<div style="clear:both"></div>
<!--CONTENEUR VO-->
<?php
			$i = 0;
			$j = 0;
			foreach($annonces as $annonce) { 
					$url = getAnnonceUrl($annonce['marque'],$annonce['modele'],$annonce['version'], $annonce['motorisation'], $annonce['id_voiture']);
					?>
<div id="conteneur-vo">
	<div id="cadre-vo">
    	<div id="img-cadre-vo" class="loading-photo">
    	<div id="img-cadre-vo">
        <?php if($annonce['photo_1']) {?>
        <a href="<?php echo $url ?>">
        <img src="<?php echo getUrlPhoto($annonce['id_ext'],$annonce['photo_1'],1); ?>" alt="<?php echo strtoupper($annonce['marque']).' '.$annonce['modele']?> occasion" border="0" class="prevPhoto" width="197" height="148" />
        </a>
        <?php } ?>
        </div>
        </div>
      <p class="marque-vo">
        <a href="<?php echo $url ?>"><?php echo $annonce['marque'].' '.$annonce['modele']?></a>
      </p>
      <p class="version-vo"><?php echo substr($annonce['version'], 0, 40).'...'; ?></p>
        <p class="annee-km-vo"> <?php echo $annonce['millesime'] ? $annonce['millesime'] : 'NC' ?>- <?php echo number_format($annonce['km'], 0, '', ' ') ?> KMS</p>
        <p class="energie-vo">
        <?php echo $annonce['motorisation'] ?>
        </p>
        <p class="prix-vo">
		<?php echo $annonce['prix'] ? number_format($annonce['prix'], 0, '', ' ') : 'NC' ?>€
        </p>
      <div id="tag-baisse-de-prix">
                        <?php 
						$resultat = $annonce['prix_special'] - $annonce['prix'];
if( $annonce['prix_special'] > $annonce['prix'] )
  echo 
  '
  <div style="margin-bottom:5px;background-repeat:no-repeat; background-image:url(/images/tag-promo.png); width:73px; height:72px; padding-top:40px"><span class="tag" align="center" style="color:#FFF; font-size:15px; font-family: \'Montserrat\', sans-serif;">-'.$resultat.' €</span></div>
  
  ';
else
  echo '';
?>
                        </div>
                        
    </div>
    <?php
			($i == 0) ? $i++ : $i=0;
			$j++;
			}
			?>
            <div style="clear:both"></div>
</div>
<!--FIN CONTENEUR VO-->
<!--CADRE TRI-->
<div id="cadre-tri" style="margin-top:0px;">
	<p class="pagination-tri" style="float:right; margin-top:0px;">
	<?php
		echo '<span style="float:left;">'.$navLinks['NB'].' résultats - '.$navLinks['NBPAGES'].' pages &nbsp;&nbsp;&nbsp;&nbsp;	</span><span style="float:right">';
			if($navLinks['DEBUT'] > 1) echo '<a href="'.getTempUrl(1,$_GET['tri']).'" class="nav">|<</a>';
			if($page > 1) echo '<a href="'.getTempUrl($page-1,$_GET['tri']).'" class="nav"><</a>';
				for($i = $navLinks['DEBUT'];$i <= $navLinks['FIN'];$i++) {
			if($i == $page) echo '<a href="'.getTempUrl($i,$_GET['tri']).'" class="current">'.$i.'</a>';
				else echo '<a href="'.getTempUrl($i,$_GET['tri']).'">'.$i.'</a>';
					}
			if($navLinks['FIN'] < $navLinks['NBPAGES']) echo '<a href="'.getTempUrl($page + 1,$_GET['tri']).'" class="nav">></a><a href="'.getTempUrl($navLinks['NBPAGES'],$_GET['tri']).'" class="nav">>|</a></span>';		
	?>
             </p>
</div>
<!--FIN CADRE TRI-->
<?php
			}
			?>
<div style="clear:both"></div>
<!--FIN AFFICHAGE STOCK-->
</div>
<!--FIN CONTENEUR PAGE-->

<!--FOOTER-->
<?php include("../inc/footer.php");?>
<!--FIN FOOTER-->
<?php require_once('../arscode-social-slider/arscode-social-slider.php');	?>
<script>
	jQuery(document).ready(function(){
		<!--SCRIPT SLIDER PRIX-->
		$(function(){
				$('select#mini option[value=null], select#maxi option[value=null]').remove();
				$('select#mini, select#maxi').hide().selectToUISlider({labels:2});
				});
		<!--FIN SCRIPT SLIDER PRIX-->
	});
</script>
<script type="text/javascript">
		<!--PRIX-->
		$(document).ready(function(){
			$('select#mini, select#maxi').selectToUISlider();
			fixToolTipColor();
		});				
</script>
<script type="text/javascript"> 
    <!--

        $(document).ready(function(){
            if($('form#moteur_form input#searchadv_footer_type_vo_input_hidden').attr('value') == '1')
            {
                $('div#searchadv_footer_type_vo').addClass('searchadv_footer_type_vo_on');
                $('div#searchadv_footer_type_vo').removeClass('searchadv_footer_type_vo_off');
            }
            if($('form#moteur_form input#searchadv_footer_type_utilitaire_input_hidden').attr('value') == '1')
            {
                $('div#searchadv_footer_type_utilitaire').addClass('searchadv_footer_type_utilitaire_on');
                $('div#searchadv_footer_type_utilitaire').removeClass('searchadv_footer_type_utilitaire_off');
            }
        });

        /* gestion du champs modele en fonction de la marque */
        function loadModeles(selectElem) 
        {
            if($(selectElem).val() == '')
            {
                $('select#modele').empty();
                $('select#modele').append('<option value="">Tous les modèles</option>');
                $('select#modele').attr('disabled', 'disabled');
            }
            else
            {
                $.getJSON('../occasions/ajax/loadModele.php', {marque : $(selectElem).val()}, function(data){
                   $('select#modele').empty();
                   $('select#modele').append('<option value="">Tous les modèles</option>');
                   $(data).each(function(i, item){
                       $('select#modele').append('<option value="' + item + '">' + item +'</option>');
                       $('select#modele').removeAttr('disabled');
                   });

                });
            }
        }

        /* switch pour les bouttons type de vehicule */
        function selectType(buttonName)
        {
            /* vo */
            switch($('div#' + buttonName).attr('class'))
            {
                case buttonName + '_off' :
                    $('div#' + buttonName).removeClass(buttonName + '_off');
                    $('div#' + buttonName).addClass(buttonName + '_on');
                    $('div#' + getOtherButtonName(buttonName)).removeClass(getOtherButtonName(buttonName) + '_on');
                    $('div#' + getOtherButtonName(buttonName)).addClass(getOtherButtonName(buttonName) + '_off');
                    $('form#moteur_form input#' + buttonName + '_input_hidden').attr('value', '1');
                    $('form#moteur_form input#' + getOtherButtonName(buttonName) + '_input_hidden').attr('value', '0');
                    $('form select#categorie').attr('disabled', true);
                    break;

                case buttonName + '_on' :
                    
                    $('div#' + buttonName).removeClass(buttonName + '_on');
                    $('div#' + buttonName).addClass(buttonName + '_off');
                    if($('div#' + getOtherButtonName(buttonName)).attr('class') == getOtherButtonName(buttonName) + '_off')
                    {
                        $('form select#categorie').attr('disabled', false);
                    }
                    $('form#moteur_form input#' + buttonName + '_input_hidden').attr('value', '0');
                    break; 
            }
        }

        /* helper pour la fonction selectType */
        function getOtherButtonName(buttonName)
        {
            switch(buttonName)
            {
                case 'searchadv_footer_type_vo' :
                    return 'searchadv_footer_type_utilitaire';
                    break;
                case 'searchadv_footer_type_utilitaire' :
                    return 'searchadv_footer_type_vo';
                    break;
            }
        }

        /* gestion des champs de kilometrage */
        function updateKmsMax(kmsminval)
        {
            if(parseInt(kmsminval) >= parseInt($('form#moteur_form select#kms_max').val()))
            {
                $('form#moteur_form select#kms_max').empty();
                for(i=100000;i>=10000;i-=5000)
                {
                    data = '<option value="' + i + '"';
                    if(i == (parseInt(kmsminval)+5000))
                    {
                        data += ' selected=selected ';
                    }
                    data += '>';
                    if(i == 100000)
                    {
                        data += '+';
                    }
                    data += i + '</option>';
                    $('form#moteur_form select#kms_max').append(data);
                }
            }
        }

        function updateKmsMin(kmsmaxval)
        {
            if(parseInt(kmsmaxval) <= parseInt($('form#moteur_form select#kms_min').val()))
            {
                $('form#moteur_form select#kms_min').empty();
                for(i=0;i<=95000;i+=5000)
                {
                    data = '<option value="' + i + ' "';
                    if(i == (parseInt(kmsmaxval)-5000))
                    {
                        data += ' selected=selected ';
                    }
                    data += '>' + i + '</option>';
                    $('form#moteur_form select#kms_min').append(data);
                }
            }
        }

        /* gestion des champs de millesime */

        function updateAnMin(annmaxval) 
        {
            if(parseInt(annmaxval) <= parseInt($('form#moteur_form select#an_min').val()))
            {
                date_object = new Date;
                $('form#moteur_form select#an_min').empty();
                for(i=date_object.getFullYear();i>=1985;i--)
                {
                    data = '<option value="' + i + ' "';
                    if(i == (parseInt(annmaxval)-1))
                    {
                        data += ' selected=selected ';
                    }
                    data += '>' + i + '</option>';
                    $('form#moteur_form select#an_min').append(data); 
                }
            }
        }

        function updateAnMax(annminval)
        {
            if(parseInt(annminval) >= parseInt($('form#moteur_form select#an_max').val()))
            {
                date_object = new Date;
                $('form#moteur_form select#an_max').empty();
                for(i=1991;i<=(date_object.getFullYear());i++)
                {
                    data = '<option value="' + i + ' "';
                    if(i == (parseInt(annminval)+1))
                    {
                        data += ' selected=selected ';
                    }
                    data += '>' + i + '</option>';
                    $('form#moteur_form select#an_max').append(data);
                }
            }
        }
    //-->
</script>
</body>
</html>
PAGE FUNCTIONS.PHP:
<?php
    /**
     * Connexion mysql
     */
	function sql_connect($host,$user,$pwd,$db){
		$connection=mysql_connect($host,$user,$pwd) or die ('Connexion au serveur de données impossible');
		mysql_select_db($db) or die('Connexion à la base de données impossible');
		return $connection;
	}
	
	/**
	 * Déconnexion mysql
	 */
	function sql_close($connection=null){
		if(empty($connection)){
			mysql_close();
		}else{
			mysql_close($connection);
		}
	}
	
	/**
	* Exécution d'une requete sur la base
	*
	*@param string La requete
	*@return resource Résultat de la requete
	*/
	function requete($query) {
		$result = mysql_query($query);
		if(!$result)
			die('Erreur SQL : '.mysql_error());
		return $result;
	}
	
	function getAnnonceUrl($marque,$modele,$version, $moteur, $id_annonce) {
		return '/voiture-occasion/' . string2url($marque . ' - ' . $modele . ' - ' . $version . ' - ' . $moteur) . '/' . $id_annonce . '.html';
	}

        function getAnnonceContactUrl($marque, $modele, $version, $moteur, $annee, $id_annonce)
        {
                return '/voiture-occasion/' . string2url($marque . ' - ' . $modele . ' - ' . $version . ' - ' . $moteur . ' - ' . $annee) . '/contacter-vendeur/' . $id_annonce . '.html';
        }
		
        function getSelectionUrl($action = false, $id = false)
        {
            $url = '/ma-selection-annonce-auto-occasion.html';
            if($action || $id)
            {
                $url .= '?';
            }
            $params = array();
            if($action)
            {
                $params[] = 'action=' . $action;
            }
            if($id)
            {
                $params[] = 'id=' . $id;
            }
            $url .= implode('&', $params);
            return $url;
        }
        
		function getListeAnnoncesUrl($page, $order, $action='') {
		$url = '/voiture-occasion/page-' . $page . '.html';
                if($order) $url .= '?order='.$order;
		return $url;
		}
	
	
	function getMarqueUrl($marque,$page = 0,$order = false) {
		$url = '/voiture-occasion-'.urlencode($marque);
		if($page) $url .= '/page-'.$page.'.html';
		return $url;
	}
	
	function getModeleUrl($marque,$modele,$page = 0,$order = false) {
		$url = '/voiture-occasion-'.urlencode($marque).'-'.urlencode($modele);
		if($page) $url .= '-page-'.$page.'.html';
		return $url;
	}
	
	function sql_insert($tab_champs, $table) {
	
		$sql_query = "INSERT INTO `$table` (";
	
		foreach($tab_champs as $champ => $valeur) {
			$sql_query .= "`$champ`, ";
		}
	
		$sql_query = substr($sql_query, 0, -2);
		$sql_query .= ") VALUES (";
	
		foreach($tab_champs as $champ => $valeur) {
			$sql_query .= "'$valeur', ";
		}
	
		$sql_query = substr($sql_query, 0, -2);
		$sql_query .= ")";
	
		$sql_result = @mysql_query($sql_query);
	
		if($sql_result) {
			return mysql_insert_id();
		}
		else {
			return false;
		}
	}
	
	function sql_update($tab_champs, $table, $where) {
		
		$request = "UPDATE `".$table."` SET ";
		
		foreach($tab_champs as $champ => $valeur) {
			$request .= "`".$champ."` = '".$valeur."', ";
		}
		$request = substr($request, 0, -2);
		$request .= " ".$where;
	
		if(!mysql_query($request)) {
			return "Erreur : ".mysql_error();
		}else{
			return true;
		}
	}
	
	function formatNumber($number){
		$separator=' ';
		$number=(string)($number);
		$count=strlen($number);
		$formated='';
		$j=0;
		for($i=$count-1;$i>=0;$i--){
			$formated=$number[$i].$formated;
			if($j==2){
				$formated=$separator.$formated;
				$j=0;
			}else{
				$j++;
			}
		}
		return $formated;
	}


        function checkIfIsMailAdress($mail)
        {
            if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", strtolower($mail)))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

function string2url($chaine) {
	$chaine = trim(strtolower($chaine));
	$chaine = strtr($chaine,
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
	$chaine = strtr($chaine,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz");
	$chaine = preg_replace('#([^.a-z0-9]+)#i', '-', $chaine);
        $chaine = preg_replace('#-{2,}#','-',$chaine);
        $chaine = preg_replace('#-$#','',$chaine);
        $chaine = preg_replace('#^-#','',$chaine);
	return $chaine;
}

/**
	 * Converts a date and time string from one format to another (e.g. d/m/Y => Y-m-d, d.m.Y => Y/d/m, ...)
	 *
	 * @param string $date_format1
	 * @param string $date_format2
	 * @param string $date_str
	 * @return string
	 */
	function convertDates($date_format1, $date_format2, $date_str) {

		$base_struc     = split('[:/.\ \-]', $date_format1);
		$date_str_parts = split('[:/.\ \-]', $date_str );

		// print_r( $base_struc ); echo "\n"; // for testing
		// print_r( $date_str_parts ); echo "\n"; // for testing

		$date_elements = array();

		$p_keys = array_keys( $base_struc );
		foreach ( $p_keys as $p_key ) {
			if ( !empty( $date_str_parts[$p_key] )) {
				$date_elements[$base_struc[$p_key]] = $date_str_parts[$p_key];
			}
			else
				return false;
		}

		// print_r($date_elements); // for testing

		if (array_key_exists('M', $date_elements)) {
			$Mtom=array(
			    "Jan"=>"01",
			    "Feb"=>"02",
			    "Mar"=>"03",
			    "Apr"=>"04",
			    "May"=>"05",
			    "Jun"=>"06",
			    "Jul"=>"07",
			    "Aug"=>"08",
			    "Sep"=>"09",
			    "Oct"=>"10",
			    "Nov"=>"11",
			    "Dec"=>"12",
			);
			$date_elements['m']=$Mtom[$date_elements['M']];
		}

		// print_r($date_elements); // for testing

		$dummy_ts = mktime(
		    $date_elements['H'],
		    $date_elements['i'],
		    $date_elements['s'],
		    $date_elements['m'],
		    $date_elements['d'],
		    $date_elements['Y']
		);

		return date( $date_format2, $dummy_ts );
	}

?>
Et la page CONFIG.PHP:
<?
session_start();

/** 
Connexion ? la base de donnée
*/
$dbserver = "xxxxxxx";
$dbname = "xxxxxxx";
$dbuser = 'xxxxxxx';
$dbpass = 'xxxxxx';
$db = mysql_connect($dbserver,$dbuser,$dbpass); 
mysql_select_db($dbname,$db);
echo mysql_error();

/**
Inclusion des fichiers
*/
include 'functions.php';
include 'class.vehicule.php';
include 'class.tools.php';

/**
Définition des variables globales
*/
define('URL','xxxxxxxxxx');
define('EMAIL_ADMIN','xxxxxxxxxxx');

/**
Création objet Vehicule
*/
if(isset($_SESSION['vh'])) $vh = unserialize($_SESSION['vh']);
else $vh = new Vehicule();


$plage_km = array (0=>0, 25000=>25000, 50000=>50000, 100000=>100000, 250000=>250000);
$plage_prix = array (0=>0, 5000=>5000, 10000=>10000, 15000=>15000, 20000=>20000, 50000=>50000, 100000=>100000);
for($i=1980;$i<=date('Y');$i++) $plage_annees_asc[] = $i;
$plage_annees_desc = $plage_annees_asc;
rsort($plage_annees_desc);

$energies = array ('DIESEL' => 'Diesel', 'ESSENCE' => 'Essence');

Re: Récupérer valeur checkbox au changement de page

Posté : 12 avr. 2013, 08:58
par Lilou000
PAGE CLASS.VEHICULE.PHP (Surement celle qui nous intéresse ?):
<?php

class Vehicule
{
    /**
     * The name of the directory where templates are located.
     *
     * @var string
     */
    private $template_dir    =  'templates';
	private $query;
    private $where;
	private $nbResults;
	private $limit;
	public $marque;
	public $modele;
	public $version;
	public $motorisation;
	public $annee_min;
	public $annee_max;
	public $prix_min;
	public $prix_max;
	public $prix_marchand_min;
	public $prix_marchand_max;
	public $kms_min;
	public $kms_max;
	public $havePhoto = false;
	public $type;
	public $utilitaire;
	public $neuf;
	public $categorie;
	public $millesime_min;
	public $millesime_max;
	public $promos;
	public $boite;
	public $porte;
	public $sellerie;
	public $gps;
	public $radarderecul;
	public $places7;
	public $places9;
	public $climatisation;
	public $toitouvrant;
	public $toitpano;
	
	public $page;
	public $nbParPage = 20;
	public $order;



    /**#@-*/
    /**
     * The class constructor.
     */
    function __construct()
    {

    }

    /**
     * The class destructor.
     */
    function __destruct()
    {
		$_SESSION['vh'] = serialize($this);
    }

	function reset() {
		$this->marque = '';
		$this->modele = '';
		$this->version = '';
		$this->motorisation = '';
		$this->annee_min = '';
		$this->annee_max = '';
		$this->prix_min = '';
		$this->prix_max = '';
		$this->kms_min = '';
		$this->kms_max = '';
		$this->prix_marchand_min = '';
		$this->prix_marchand_max = '';
		$this->havePhoto = false;
		$this->type = '';
		$this->utilitaire = '';
		$this->page = '';
		$this->categorie='';
		$this->millesime_max='';
		$this->millesime_min='';
		$this->promo='';
		$this->neuf='';
        $this->gps = '';
		$this->radarderecul = '';
		$this->places7 = '';
		$this->places9 = '';
		$this->climatisation = '';
		$this->toitouvrant = '';
		$this->toitpano = '';
		$this->boite='';
		$this->porte='';
		$this->sellerie='';
		$this->lieu='';
    }

	/**
	 * retourne l'ensemble des marques
	 *
	 * @return array Tableau des marques
	 */
    function getMarques()
    {
		$query = "SELECT `nom` FROM `marques` ORDER BY `nom` ASC";
		$result = requete($query);
		$marques = array();
		while($data = mysql_fetch_assoc($result)) {
			$marques[] = $data['nom'];
		}
		return $marques;
    }

	/**
	 * retourne l'ensemble des marques pour lesquelles il existe au moins un vehicule en base
	 *
	 * @return array Tableau des marques
	 */
    function getPopulatedMarques($neuf = 2)
    {
		$query = "SELECT DISTINCT `marque` AS `nom` FROM `voitures` WHERE `vendue` = '0'".(($neuf==2)?null:(($neuf==1)?' AND neuf=\'1\'':' AND neuf=\'0\''))." ORDER BY `marque` ASC";
		$result = requete($query);
		$marques = array();
		while($data = mysql_fetch_assoc($result)) {
			$marques[] = $data['nom'];
		}
		return $marques;
    }

/**
	 * retourne l'ensemble des modeles
	 *
	 * @param mixed $marque Marque parente
	 * @return array Tableau des modeles
	 */
    function getModeles($marque = false)
    {
		if($marque) {
			$query = "SELECT modeles.nom FROM `marques`,`modeles` WHERE marques.id_marque = modeles.id_marque AND marques.nom = '$marque' ORDER BY modeles.nom ASC";
		}
		else {
			$query = "SELECT `nom` FROM `modeles` ORDER BY `nom` ASC";
		}
		$result = requete($query);
		$modeles = array();
		while($data = mysql_fetch_assoc($result)) {
			$modeles[] = $data['nom'];
		}
		return $modeles;
    }

	/* retourne l'ensemble des modeles pour lesquels il existe au moins un v�hicule en base
	 *
	 * @param mixed $marque Marque parente
	 * @return array Tableau des modeles
	 */
    function getPopulatedModeles($marque = false, $neuf = 2)
    {
		if($marque) {
			$query = "SELECT DISTINCT `modele` AS `nom` FROM `voitures` WHERE `marque` = '$marque' AND `vendue` = '0'".(($neuf==2)?null:(($neuf==1)?' AND neuf=\'1\'':' AND neuf=\'0\''))." ORDER BY modele ASC";
		}
		else {
			$query = "SELECT DISTINCT `modele` AS `nom` FROM `voitures` WHERE `vendue` = '0'".(($neuf==2)?null:(($neuf==1)?' AND neuf=\'1\'':' AND neuf=\'0\''))." ORDER BY modele ASC";
		}
		$result = requete($query);
		$modeles = array();
		while($data = mysql_fetch_assoc($result)) {
			$modeles[] = $data['nom'];
		}
		return $modeles;
    }

	/* retourne l'ensemble des boites
	 *
	 * @return array Tableau des boites
	 */

		function getBoites() {
		$query = "SELECT `nom` FROM `boites` ORDER BY `nom` ASC";
		$result = requete($query);
		$boites = array();
		while($data = mysql_fetch_assoc($result)) {
			$boites[] = $data['nom'];
		}
		return $boites;
	}

	/* retourne l'ensemble des boites pour lesquelles il existe au moins un v�hicule en base
	 *
	 * @return array Tableau des boites
	 */
   //function getPopulatedBoites()
  //  {

	//	$query = "SELECT DISTINCT `boite` AS `nom` FROM `voitures` WHERE `vendue` = '0' ORDER BY `boite` ASC";
		//$result = requete($query);
		//$boites = array();
		//while($data = mysql_fetch_assoc($result)) {
		//$boites[] = $data['nom'];
		//}
		//return $boites;
  // }
	function getPopulatedBoites()
{
   $query = "SELECT DISTINCT `boite` AS `nom` FROM `voitures` WHERE `vendue` = '0' ORDER BY `boite` ASC";
   $result = requete($query);
   $boites = array('all' => 'Toutes', 'auto' => 'Toutes les automatiques', 'man' => 'Toutes les manuelles');
   while($data = mysql_fetch_assoc($result)) {
      $boites[$data['nom']] = $data['nom'];
   }
   return $boites;
}

	/* retourne l'ensemble des portes pour lesquelles il existe au moins un v�hicule en base
	 *
	 * @return array Tableau des portes
	 */
    function getPopulatedPortes()
    {

		$query = "SELECT DISTINCT `portes` AS `nom` FROM `voitures` WHERE `portes` > '0' AND `vendue` = '0' ORDER BY `portes` ASC";
		$result = requete($query);
		$portes = array();
		while($data = mysql_fetch_assoc($result)) {
			$portes[] = $data['nom'];
		}
		return $portes;
    }

	/* retourne l'ensemble des selleries pour lesquelles il existe au moins un v�hicule en base
	 *
	 * @return array Tableau des selleries
	 */
    function getPopulatedSelleries()
    {

		$query = "SELECT DISTINCT `sellerie` AS `nom` FROM `voitures` WHERE `vendue` = '0' ORDER BY `sellerie` ASC";
		$result = requete($query);
		$selleries = array();
		while($data = mysql_fetch_assoc($result)) {
			$selleries[] = $data['nom'];
		}
		return $selleries;
    }

	/* retourne l'ensemble des selleries pour lesquelles il existe au moins un v�hicule en base
	 *
	 * @return array Tableau des selleries
	 */
    function getPopulatedLieux()
    {

		$query = "SELECT DISTINCT `lieu` AS `nom` FROM `voitures` WHERE `vendue` = '0' ORDER BY `lieu` ASC";
		$result = requete($query);
		$lieux = array();
		while($data = mysql_fetch_assoc($result)) {
			$lieux[] = $data['nom'];
		}
		return $lieux;
    }


	/* retourne l'ensemble des motorisations
	 *
	 * @return array Tableau des motorisations
	 */
	function getMotorisations() {
		$query = "SELECT `nom` FROM `motorisations`";
		$result = requete($query);
		$motorisations = array();
		while($data = mysql_fetch_assoc($result)) {
			$motorisations[] = $data['nom'];
		}
		return $motorisations;
	}

	/* retourne l'ensemble des motorisations pour lesquelles il existe au moins un v�hicule en base
	 *
	 * @return array Tableau des motorisations
	 */
    function getPopulatedMotorisations()
    {

		$query = "SELECT DISTINCT `motorisation` AS `nom` FROM `voitures` WHERE `vendue` = '0' ORDER BY `motorisation` ASC";
		$result = requete($query);
		$motorisations = array();
		while($data = mysql_fetch_assoc($result)) {
			$motorisations[] = $data['nom'];
		}
		return $motorisations;
    }


	/* retourne l'ensemble des informations de la base pour un vehicule donn�
	 *
	 * @param int $id Identifiant du v�hicule
	 * @return array Tableau des informations
	 */
	function getVehiculeInfo($id) {
		$query = "SELECT * FROM `voitures` WHERE `id_voiture` = '$id'";
		$result = requete($query);
		$data = mysql_fetch_assoc($result);
		return $data;
	}
	
	function getVehiculeInfoNvo($nvo) {
		$query = "SELECT * FROM `voitures` WHERE `nvo` = '$nvo'";
		$result = requete($query);
		$data = mysql_fetch_assoc($result);
		return $data;
	}

	function getCategories(){
		$query="SELECT DISTINCT `categorie` FROM `voitures` WHERE `categorie` != '' ORDER BY `categorie`";
		$result=requete($query);
		$categories=array();
		while($categorie=mysql_fetch_assoc($result)){
			$categories[] = $categorie['categorie'];
		}
		return $categories;
	}

    function getGpsIds()
    {
        $sql   = "SELECT `id_option` FROM `options` WHERE `options`.`nom` LIKE '%gps%'";
        $query = requete($sql);
        $data  = array();
        while ($row = mysql_fetch_assoc($query))
        {
            $data[] = $row['id_option'];
        }

        return $data;
    }
	
	function getRadardereculIds()
    {
        $sql   = "SELECT `id_option` FROM `options` WHERE `options`.`nom` LIKE '%radar de%'";
        $query = requete($sql);
        $data  = array();
        while ($row = mysql_fetch_assoc($query))
        {
            $data[] = $row['id_option'];
        }

        return $data;
    }
	
	function getPlaces7Ids()
    {
        $sql   = "SELECT `id_option` FROM `options` WHERE `options`.`nom` LIKE '%7 places%'";
        $query = requete($sql);
        $data  = array();
        while ($row = mysql_fetch_assoc($query))
        {
            $data[] = $row['id_option'];
        }

        return $data;
    }
	
	function getPlaces9Ids()
    {
        $sql   = "SELECT `id_option` FROM `options` WHERE `options`.`nom` LIKE '%9 places%'";
        $query = requete($sql);
        $data  = array();
        while ($row = mysql_fetch_assoc($query))
        {
            $data[] = $row['id_option'];
        }

        return $data;
    }
	
	function getClimatisationIds()
    {
        $sql   = "SELECT `id_option` FROM `options` WHERE `options`.`nom` LIKE '%clim%'";
        $query = requete($sql);
        $data  = array();
        while ($row = mysql_fetch_assoc($query))
        {
            $data[] = $row['id_option'];
        }

        return $data;
    }
	
	function getToitouvrantIds()
    {
        $sql   = "SELECT `id_option` FROM `options` WHERE `options`.`nom` LIKE '%toit ouvrant%'";
        $query = requete($sql);
        $data  = array();
        while ($row = mysql_fetch_assoc($query))
        {
            $data[] = $row['id_option'];
        }

        return $data;
    }
	
	function getToitpanoIds()
    {
        $sql   = "SELECT `id_option` FROM `options` WHERE `options`.`nom` LIKE '%panoramique%'";
        $query = requete($sql);
        $data  = array();
        while ($row = mysql_fetch_assoc($query))
        {
            $data[] = $row['id_option'];
        }

        return $data;
    }

	function getVehiculeOptions($options) {
		if(!$options) return false;
		$opts = explode(';',$options);
		if(!empty($opts)) {
			$query = "SELECT `nom` FROM `options` WHERE `id_option` IN (";
			$query2 = '';
			foreach($opts as $opt) {
				if($opt) $query2 .= "'$opt',";
			}
			if(!strlen($query2)) return false;
			$query .= substr($query2,0,-1);
			$query .= ')';
			$res = requete($query);
			$options = array();
			while($data = mysql_fetch_assoc($res)) {
				$options[] = $data['nom'];
			}
			return $options;
		}
		return false;
	}

	function loadGetData() {
		if($_GET['marque']) {
			$this->marque = strtr($_GET['marque'],'-',' ');
			$this->modele = $_GET['modele'];
		}
		if(isset($_GET['neuf'])){
			$this->neuf	  = $_GET['neuf'];
		}
                if(isset($_GET['order']))
                {
                    $this->order          = $_GET['order'];
                }
                if(isset($_GET['categorie']))
                {
                    $this->categorie          = $_GET['categorie'];
                }
                if(isset($_GET['prix_min']))
                {
                    $this->prix_min          = $_GET['prix_min'];
                }
                if(isset($_GET['prix_max']))
                {
                    $this->prix_max          = $_GET['prix_max'];
                }
                if(isset($_GET['kms_min']))
                {
                    $this->kms_min          = $_GET['kms_min'];
                }
                if(isset($_GET['kms_max']))
                {
                    $this->kms_max          = $_GET['kms_max'];
                }
				 if(isset($_GET['lieu']))
                {
                    $this->lieu          = $_GET['lieu'];
                }
                if(isset($_GET['promos']))
                {
                    $this->promos          = 1;
                }

	}

	function loadPostData() {
		if(isset($_POST['marque'])) 			$this->marque = $_POST['marque'];
		if(isset($_POST['modele'])) 			$this->modele = $_POST['modele'];
		if(isset($_POST['version'])) 			$this->version = $_POST['version'];
		if(isset($_POST['boite'])) 				$this->boite = $_POST['boite'];
		if(isset($_POST['porte'])) 				$this->porte = $_POST['porte'];
		if(isset($_POST['sellerie'])) 			$this->sellerie = $_POST['sellerie'];
		if(isset($_POST['lieu'])) 				$this->lieu = $_POST['lieu'];
		if(isset($_POST['motorisation'])) 		$this->motorisation = $_POST['motorisation'];
        if(isset($_POST['type']))               $this->type         = $_POST['type'];
		if(isset($_POST['prix_min'])) 			$this->prix_min = $_POST['prix_min'];
		if(isset($_POST['prix_max']) && $_POST['prix_max']!='100000') 		$this->prix_max = $_POST['prix_max'];
		if(isset($_POST['prix_marchand_min'])) 	$this->prix_marchand_min = $_POST['prix_marchand_min'];
		if(isset($_POST['prix_marchand_max'])) 	$this->prix_marchand_max = $_POST['prix_marchand_max'];
		if(isset($_POST['kms_min'])) 			$this->kms_min = $_POST['kms_min'];
		if(isset($_POST['kms_max']))			$this->kms_max = $_POST['kms_max'];
		if(isset($_POST['annee_min'])) 			$this->annee_min = $_POST['annee_min'];
		if(isset($_POST['annee_max'])) 			$this->annee_max = $_POST['annee_max'];
		if(isset($_POST['millesime_min'])) 		$this->millesime_min = $_POST['millesime_min'];
		if(isset($_POST['millesime_max'])) 		$this->millesime_max = $_POST['millesime_max'];
		if(isset($_POST['utilitaire'])) 		$this->utilitaire = $_POST['utilitaire'];
		else									$this->utilitaire = false;
		if(isset($_POST['neuf'])) 				$this->neuf = $_POST['neuf'];
		if(isset($_POST['categorie']))			$this->categorie = $_POST['categorie'];
		if(isset($_POST['promo']))				$this->promo = $_POST['promo'];
		if(isset($_POST['gps']))				$this->gps = $_POST['gps'];
		if(isset($_POST['radarderecul']))		$this->radarderecul = $_POST['radarderecul'];
		if(isset($_POST['places7']))			$this->places7 = $_POST['places7'];
		if(isset($_POST['places9']))			$this->places9 = $_POST['places9'];
		if(isset($_POST['climatisation']))		$this->climatisation = $_POST['climatisation'];
		if(isset($_POST['toitouvrant']))		$this->toitouvrant = $_POST['toitouvrant'];
		if(isset($_POST['toitpano']))			$this->toitpano = $_POST['toitpano'];

	}

	function loadSessionData() {

	}

	function makeSearchQuery() {
		$this->query = "SELECT * FROM `voitures`";

		$this->where = "WHERE `vendue` = '0'";

		// Type d'annonce
		switch($this->type) {
			default : $this->where .= " AND `expiration` IN (NULL, '0000-00-00 00:00:00')";
		}

		// Boite
		if ($this->boite && ($this->boite !== 'all')) {
   		$groups = array('auto' => 'A', 'man' => 'M');
   		if (isset($groups[$this->boite])) {
      	$this->where .= " AND `boite` LIKE '%{$groups[$this->boite]}%'";
   		}
   		else {
      $this->where .= " AND `boite` = '{$this->boite}'";
   }
}
		// Porte
		if($this->porte) $this->where .= " AND `portes` = '".$this->porte."'";
		
		// Sellerie
		if($this->sellerie) $this->where .= " AND `sellerie` = '".$this->sellerie."'";
		
		// Lieu
		if($this->lieu) $this->where .= " AND `lieu` = '".$this->lieu."'";

		// Type
		if($this->type) $this->where .= " AND `type` = '".$this->type."'";

		// Marque ?
		if($this->marque) $this->where .= " AND `marque` = '".$this->marque."'";

		// Mod�le
		if($this->marque && $this->modele) $this->where .= " AND `modele` = '".$this->modele."'";

		// Version
		if($this->version) $this->where.= " AND `version` LIKE '%".$this->version."%'";

		// Motorisation
		if($this->motorisation) $this->where .= " AND `motorisation` = '".$this->motorisation."'";

		// Annee min ?
		if($this->annee_min) $this->where .= " AND `mise_circulation` >= '".$this->annee_min."'";

		// Annee max ?
		if($this->annee_max) $this->where .= " AND `mise_circulation` <= '".$this->annee_max."'";

		// Prix min ?
		if($this->prix_min) $this->where .= " AND `prix` >= ".$this->prix_min;

		// Prix max ?
		if($this->prix_max) $this->where .= " AND `prix` <= ".$this->prix_max;

		// Prix marchand min ?
		if($this->prix_marchand_min) $this->where .= " AND `prix_marchand` >= '".$this->prix_marchand_min."'";

		// Prix marchand max ?
		if($this->prix_marchand_max) $this->where .= " AND `prix_marchand` <= '".$this->prix_marchand_max."'";

		// Kms min ?
		if($this->kms_min) $this->where .= " AND `km` >= ".$this->kms_min;

		// kms max ? //hack pour le formulaire de recherche : 100000 corresond à no limit
		if($this->kms_max && $this->kms_max != '100000') $this->where .= " AND `km` <= ".$this->kms_max;

		// Photo ?
		if($this->havePhoto) $this->where .= " AND `photo_1` != ''";

		// Utilitaire ?
		if($this->utilitaire) $this->where .= " AND `utilitaire` = '1'";

		// neuf ?
		if($this->neuf==='1' || $this->neuf==='0') $this->where .= " AND `neuf` = '$this->neuf'";

		//Catégorie ?
                if($this->categorie && $this->categorie == 'nofourgon')
                {
                    $this->where .= " AND `categorie` != 'FOURGON'";
                }

		elseif($this->categorie) $this->where .= " AND `categorie` = '".$this->categorie."'";

		//millesime
		if($this->millesime_min) $this->where .= " AND `millesime` >= ".$this->millesime_min;
		if($this->millesime_max) $this->where .= " AND `millesime` <= ".$this->millesime_max;

		//promo
		if($this->promos) $this->where .= " AND `promos` > 0";

		// gps
		if(isset($_POST['gps']))
        //if (isset($this->gps))
        {
            $gps_id = $this->getGpsIds();
            $where  = array();
            foreach ($gps_id as $id)
            {
                $where[] = "(`options` LIKE '%;{$id};%')";
            }
            $this->where .= ' AND ('. implode(' OR ', $where).')';
        }
		 
		 // radar de recul
		if(isset($_POST['radarderecul']))
        
        {
            $radarderecul_id = $this->getRadardereculIds();
            $where  = array();
            foreach ($radarderecul_id as $id)
            {
                $where[] = "(`options` LIKE '%;{$id};%')";
            }
            $this->where .= ' AND ('. implode(' OR ', $where).')';
        }
		 
		 // 7 places
		if(isset($_POST['places7']))
        {
            $places7_id = $this->getplaces7Ids();
            $where  = array();
            foreach ($places7_id as $id)
            {
                $where[] = "(`options` LIKE '%;{$id};%')";
            }
            $this->where .= ' AND ('. implode(' OR ', $where).')';
        }
		
		// 9 places
		if(isset($_POST['places9']))
        {
            $places9_id = $this->getplaces9Ids();
            $where  = array();
            foreach ($places9_id as $id)
            {
                $where[] = "(`options` LIKE '%;{$id};%')";
            }
            $this->where .= ' AND ('. implode(' OR ', $where).')';
        }
		
		// Climatisation
		if(isset($_POST['climatisation']))
        {
            $climatisation_id = $this->getclimatisationIds();
            $where  = array();
            foreach ($climatisation_id as $id)
            {
                $where[] = "(`options` LIKE '%;{$id};%')";
            }
            $this->where .= ' AND ('. implode(' OR ', $where).')';
        }
		
		// Toit ouvrant
		if(isset($_POST['toitouvrant']))
        {
            $toitouvrant_id = $this->gettoitouvrantIds();
            $where  = array();
            foreach ($toitouvrant_id as $id)
            {
                $where[] = "(`options` LIKE '%;{$id};%')";
            }
            $this->where .= ' AND ('. implode(' OR ', $where).')';
        }
		
		// Toit panoramique
		if(isset($_POST['toitpano']))
        {
            $toitpano_id = $this->gettoitpanoIds();
            $where  = array();
            foreach ($toitpano_id as $id)
            {
                $where[] = "(`options` LIKE '%;{$id};%')";
            }
            $this->where .= ' AND ('. implode(' OR ', $where).')';
        }
	}

	function search($type = false) {

		// Creation de la requete
		$this->makeSearchQuery();

		// Creation du order

		if($this->order) {
			$order = explode('-',$this->order);
			$this->where .= " ORDER BY `$order[0]` $order[1], photo_1 DESC";
		}
		else $this->where .= " ORDER BY `nvo` DESC, photo_1 DESC";


		// Creation du limit
		$this->limit = "LIMIT ".(($this->page-1)*$this->nbParPage).",".$this->nbParPage;

		// R�cup�ration du nombre de r�sultats
		$this->nbResults = $this->countSearchResults();

		$vehicules = array();

		if($this->nbResults) {

			$results = requete($this->query.' '.$this->where.' '.$this->limit);
			while($data = mysql_fetch_assoc($results)) {
				$vehicules[] = $data;
			}
		}
		return $vehicules;
	}

	function countSearchResults() {
		$query = "SELECT `id_voiture` FROM `voitures` ".$this->where;
		$result = requete($query);
		return mysql_num_rows($result);
	}


	function getNavLinks($ecart = 7) {
		$nbPages = ceil($this->nbResults / $this->nbParPage);
		$debut = (($this->page - $ecart)< 0 ? 1 : $this->page - $ecart);

		$fin = (($debut + $ecart*2)> $nbPages ? $nbPages : $debut + $ecart*2);

		return array("NB"=>$this->nbResults,"NBPAGES"=>$nbPages,"DEBUT"=>$debut,"FIN"=>$fin);
	}



	function getNext($id_voiture,$marque,$modele,$boite){
		if($this->boite !== 'all') {
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` FROM `voitures` WHERE `id_voiture` < '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' AND `boite` LIKE '" . substr($boite, 0, 3) . "%' ORDER BY `id_voiture` ASC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
		}

		else{
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version` FROM `voitures` WHERE `id_voiture` < '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' ORDER BY `id_voiture` ASC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
		}
	}


	function getPrevious($id_voiture,$marque,$modele,$boite) {
		if($this->boite !== 'all') {
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` FROM `voitures` WHERE `id_voiture` > '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' AND `boite` LIKE '" . substr($boite, 0, 3) . "%' ORDER BY `id_voiture` DESC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
		}
		else {
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version` FROM `voitures` WHERE `id_voiture` > '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' ORDER BY `id_voiture` DESC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
		}
	}

	function getNextFlash($id_voiture) {
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version` FROM `voitures` WHERE `id_voiture` > '$id_voiture' AND `expiration` IS NOT NULL AND `expiration` > NOW() ORDER BY `id_voiture` ASC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
	}

	function getPreviousFlash($id_voiture) {
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version` FROM `voitures` WHERE `id_voiture` < '$id_voiture' AND `flash` = '1' AND `expiration` IS NOT NULL AND `expiration` > NOW() ORDER BY `id_voiture` DESC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
	}

	function getNextArrivage($id_voiture) {
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version` FROM `voitures` WHERE `id_voiture` > '$id_voiture' AND `arrivage` = '1' ORDER BY `id_voiture` ASC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
	}

	function getPreviousArrivage($id_voiture) {
		$sql_query = "SELECT `id_voiture`,`marque`,`modele`,`version` FROM `voitures` WHERE `id_voiture` < '$id_voiture' AND `arrivage` = '1' ORDER BY `id_voiture` DESC LIMIT 0,1";
		$sql_result = requete($sql_query);
		if(!mysql_num_rows($sql_result)) return false;
		else {
			$data = mysql_fetch_assoc($sql_result);
			return $data;
		}
	}

	function getVentesFlash($limit = 4) {
		$sql_query = "SELECT * FROM `voitures` WHERE `flash` = '1' AND `expiration` IS NOT NULL AND `expiration` > NOW() ORDER BY `expiration` ASC LIMIT 0,$limit";
		$sql_result = requete($sql_query);
		$ventes = array();
		while($data = mysql_fetch_assoc($sql_result)) {
			$ventes[] = $data;
		}
		return $ventes;
	}

	function getArrivages($limit = 4) {
		$sql_query = "SELECT * FROM `voitures` WHERE `arrivage` = '1'";
		$sql_result = requete($sql_query);
		$ventes = array();
		while($data = mysql_fetch_assoc($sql_result)) {
			$ventes[] = $data;
		}
		return $ventes;
	}

	function getMcdSelection($idMarchand) {
		$sql_query = "SELECT * FROM `voitures`, `panier_marchands` WHERE `arrivage` = '0' AND `flash` = '0' AND id_voiture = idVoiture AND idMarchand = '$idMarchand'";
		$sql_result = requete($sql_query);
		$ventes = array();
		while($data = mysql_fetch_assoc($sql_result)) {
			$ventes[] = $data;
		}
		return $ventes;
	}

	function getLinkedModeles($nom_modele, $prix=false){
		$max=5;
		$sql_query="SELECT DISTINCT * FROM voitures WHERE (modele IN (SELECT nom_modele2 FROM modeles_link WHERE nom_modele1='$nom_modele') OR modele IN (SELECT nom_modele1 FROM modeles_link WHERE nom_modele2='$nom_modele'))";
		if($prix){
			$sql_query.=" AND '$this->prix_min'<prix AND prix<'$this->prix_max'";
		}
		$sql_query.=" ORDER BY prix LIMIT 0 , $max";
		$sql_result=requete($sql_query);
		$vehicules=array();
		while($data=mysql_fetch_assoc($sql_result)){
			if($data['nom_modele1']==$nom_modele){
				$vehicules[]=$data;
			}else{
				$vehicules[]=$data;
			}
		}
		$max=$max-count($vehicules);
		$notin='';
		$count=count($vehicules);
		for($i=0;$i<$count;$i++){
			$notin.="'{$vehicules[$i]['id_voiture']}',";
		}
		$notin=substr($notin,0,strlen($notin)-1);
		$sql_query="SELECT DISTINCT * FROM voitures WHERE (modele IN (SELECT nom_modele2 FROM modeles_link WHERE nom_modele1='$nom_modele') OR modele IN (SELECT nom_modele1 FROM modeles_link WHERE nom_modele2='$nom_modele'))";
		if(!empty($notin))$sql_query.=" AND id_voiture NOT IN($notin)";
		$sql_query.=" ORDER BY prix LIMIT 0 , $max";
		$sql_result=requete($sql_query);
		while($data=mysql_fetch_assoc($sql_result)){
			if($data['nom_modele1']==$nom_modele){
				$vehicules[]=$data;
			}else{
				$vehicules[]=$data;
			}
		}
		return $vehicules;
	}


        function getDataArray()
        {
            $dataFilterArray = array(
                'template_dir',
                'query',
                'where',
                'nbResults',
                'limit',
                'nbParPage',
            );

            $data = get_object_vars($this);
            foreach($data as $key => $value)
            {
                if(empty($value) || in_array($key, $dataFilterArray))
                {
                    unset($data[$key]);
                }
            }
            return $data;
        }

}
?>