[RESOLU] PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

Re: [RESOLU] PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRIT

par moogli » 06 juil. 2013, 13:07

de rien ;)



@+

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 06 juil. 2013, 12:25

Grand merci! Après un grand combat et des multiples essais de tes recommandation, j'ai enfin pu tout faire fonctionner comme je voulais! Vraiment merci à toi moogli :lol: . Bon.... :-k je crois que tous mes problèmes concernant la pagination sont résolus! Je vais donc marquer le sujet comme résolu en espérant qu'un autre obstacle ne surgisse point!

MERCI ENCORE =D>

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par moogli » 05 juil. 2013, 13:56

pré initialisation du formulaire, utilise les attribut value des champs text, checked pour les cases à cocher / radio ou selected pour les option des listes déroulantes.

si tu as suivis mes conseils tu ne devrais pas avoir de valeur vide en session (pour les choix multiple les champs texte limite on s'en fou sauf si tu souhaite forcer une valeur).

ensuite lorsque tu affiche un champs tu test si la valeur correspondante est dans le tableau de session si oui tu ajoute checked="checked" pour les checkbox et selected="selected" pour les options
exemple avec une liste déroulante, le principe est le même pour des checkbox, des bouton radio etc
<?php
echo '<select name="truc">';
for ($i =0; $i <10; $i++) {
    echo '<option value="'.$i.'"';
    if(!empty($_SESSION['critere']['truc'])) {
        echo ' selected="selected"';
    }
    echo '>'.$i.'</option>';
}
echo '</select>';

@+

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 05 juil. 2013, 11:12

Jusque la la pagination fonctionne parfaitement! Mais maintenant ce que je souhaiterais faire c'est de retenir les critères sélectionnes dans le formulaire! Je m'explique:
si par exemple on choisi le critère validé et qu'il y a 20 résultats soit 2 pages, dans mon formulaire, je voudrais que le bouton radio validé soit coché et ce sur toute les page. Sur la page 1 le bouton radio est coché; mais quand je clic sur la page 2, le bouton n'est plus coché bien que les résultats et la pagination sont exactes. Comment faire pour conserver le bouton radio coché selon le critère choisi?

Merci pour votre aide :D

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 05 juil. 2013, 00:03

Parfait!!!! :D \:D/ La pagination marche à merveille!

J'ai utilisé les variables de session dans la raquette!

Grand merci moogli =D>
Bon j'espère que d'autres problème vont pas me tomber sur la tête par la suite! :priere:

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 04 juil. 2013, 23:31

ok je vais indexer mon tableau. Merci

Bon à présent voyons voir si je peux adapter tout sa mon code :priere:

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par moogli » 04 juil. 2013, 23:15

=> voir utilisation d'un tableau.

mais bon c'est pas simple la tu peux indexer les valeurs parce que c'est pas clair ton affaire la.
<?php
$_SESSION['critère']['nom du critere 1'] = 1;
$_SESSION['critère']['nom du critere 2'] = 2;
$_SESSION['critère']['nom du critere 3'] = 3;
$_SESSION['critère']['nom du critere 4'] = 4;

@+

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 04 juil. 2013, 23:02

Exactement je viens de tester ceci
$_SESSION['critère'] = array();

$_SESSION['critère'][] = 1;
$_SESSION['critère'][] = 2;
$_SESSION['critère'][] = 3;
$_SESSION['critère'][] = 4;

print_r($_SESSION['critère']);
et sa m'affiche bien toute les valeurs. Mais suis-je obligé de mettre les doubles crochet pour insérer une nouvelle valeur dans le tableau?

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par moogli » 04 juil. 2013, 22:52

comme tu veux mais le tableau me semble quand même plus cohérent.

en gros : $_SESSION['critère'] = array();


@+

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 04 juil. 2013, 22:31

euhhhhhh :idea: excuse moi moogli ......
je suis entrain d'essayer et je me demande si je comment mettre les critères dans la variable de session! Dois-je créer une variable de session pour chaque critères ou alors je dois mettre tous les critères dans une seule variable de session qui est un tableau......??

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 04 juil. 2013, 21:33

OK d'accord. Merci beaucoup pour votre réponse. Je vais appliquer vos conseil puis je verrais ce que ça vas donner. :D

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par moogli » 04 juil. 2013, 21:26

salut,


code trop dense pour être vérifier complètement il te faut isoler le code pour le tester.

éviter les "extract" c'est totalement inutile et source d'emmerde, utilise le tableau directement ce n'est pas un problème.

le principe est simple (en pseudo code)
si le formulaire est posté
traiter le formulaire et mettre en session les critères
sinon
si les critères ne sont pas en session
initialiser les critères de recherche par défaut en session
fin si
fin sinon

Créer la requête utilisant les valeurs en session (et seulement celle qui sont en session)

@+

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 03 juil. 2013, 20:41

Oui c'est bien ce que je fais dans l'inclusion du fichier config.php

voici le fichier config.php
<?php
//Ouverture d'une session
session_start();

//definition des chemins absolus
define('RACINEimg', 'http://'.$_SERVER['HTTP_HOST'].'/GMSuiviDevis/images/BG/', true); //chemin absolus dossier images
define('RACINE', 'http://'.$_SERVER['HTTP_HOST'].'/GMSuiviDevis/', true); 	//chemin absolue de la racine
define('TITRESITE', 'Gabon Meca Gestionnaire de devis', true);
define('messagesParPage',10,true);//nombre d'element a afficher par pa
$queries = 0;

//Connexion a la base de donnée
try{
	/* Paramètres de configuration et de connexion à la base de données. À personnaliser*/
 	$hostname = "localhost"; 
	$username = "root"; 
	$password = ""; 
	$database = "gmsuividevis"; 

/* Connexion à la base de données. */
	$base = mysql_connect ($hostname, $username, $password) or die(mysql_error());
	mysql_select_db($database, $base); 
}catch(Exception $e){
	// En cas d'erreur, on affiche un message et on arrête tout
	die('Erreur : '.$e->getMessage());
	echo 'Impossible de se connecter a la base de donnees';
}
?>

Re: PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par baddevil » 03 juil. 2013, 17:08

salut,
as tu ajouté session_start(); au debut de ta page juste en dessous <?php

regarde les infos http://php.net/manual/fr/function.session-start.php

PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

par mbmk92 » 03 juil. 2013, 14:03

PAGINATION SUR MOTEUR DE RECHERCHE MULTIPLECRITERES

Bonjour a vous, je suis à cours d'idées et j'ai vraiment besoin de votre aide.

J'ai le même problème que celui rencontré par baddevil dans le sujet [RESOLU] module de recherche multicriteres php! :cry: :priere:
php-debutant/module-recherche-multicrit ... 41-15.html

Voila, j'ai fait un moteur de recherche multiple-critère avec pagination. Lorsque j'effectue la recherche selon un ou plusieurs critère, ces critères sont enregistré dans une variable de session et les résultats et le nombre de pages s'affiche correctement! Cependant, lorsque je clic sur la page 2, sa m'affiche la page 2 de la requête par défaut qui est celle d'afficher tous les devis sans distinction.

Tout fonctionne très bien mais la pagination coince!

merci pour votre aide précieuse!

voici le code complet de la page
<?php
/********Inclusion des paramètres...**********/
include('includes/config.php');
/********Fin des paramètres...**********/

/********Entête et titre de page*********/
$titre = 'Liste-des-devis';
include('includes/haut.php'); //contient le doctype, et head.
/**********Fin entête et titre***********/
?>
<!---------------------------------------------------------------- DEBUT MENU DE GAUCHE --------------------------------------------------------->
<?php
$requete = ''; 
$texte = '';
$devisCom = '';
$devisEtat = '';
$parEtat = '';
$parCom = '';
$parCli = '';
?>
<!--============================================ MENU ===========================================================-->
<div id='cssmenu'>
<ul>
   <li><a href="<?php echo RACINE; ?>pages/ajout-devis.php"><span>Nouveau devis</span></a></li>
   <li><a href="<?php echo RACINE; ?>pages/modifier-devis.php"><span>Modifier un devis</span></a></li>
   <li class='active'><a href="<?php echo RACINE; ?>pages/liste-devis.php"><span>Tous les devis</span></a></li>
</ul>
</div>
<!-------------------------------- FIN MENU ------------------------------------------------>

<!--------------------------------------- CRITERES DE RECHERCHE --------------------------------------------------->
<div id='cssmenu'>
<ul>
<form name="tri" method="post" action="liste-devis.php">
<?php
/************************************************ RECHERCHE PAR COMMERCIAL  ********************************************************/  
if($_SESSION['privilege']=='Administrateur'){
?>
<!--============================== DEBUT COMMERCIAL ====================================-->
	<li>
    <p align="center" style="color:#06F">Devis par Commercial</p>
	<select style="font-size:11px" name="devisCom" onChange="this.form.submit()">
	<option value="">-- Sélectionner commercial -- </option>
	<?php
	$requete = "SELECT * FROM commercial ORDER BY nomCommercial";
	$execution_requete = mysql_query($requete);

	while($totalcom = mysql_fetch_array($execution_requete)){
		extract($totalcom);
		$select=($_POST['devisCom']==$idCommercial) ? " selected " : "";
		echo '<option '.$select.' value="'.$idCommercial.'">'.$nomCommercial.'</option>';
	}//fin while
	?>
	</select>
    <br /><br />
    </li>
<?php
//fin de la vérification si c'est un admin
}
?>
<!------------------------------------ FIN COMMERCIAL ---------------------------------->

<!--==================================== DEBUT ETAT =======================================-->
    <li>
    <p align="center"><span style="color:#06F">Devis par état</span>
   	<?php
	  if(isset($_POST['devisEtat']) AND $_POST['devisEtat']=='valide'){
		  echo '<center><label title="Validé">Validé<input checked="checked" type="radio" name="devisEtat" value="valide" title="Devis validé" onclick="this.form.submit()" style="font-size: 11px"/></label>';
		  echo '<label title="Annulé"><input type="radio" name="devisEtat" value="annule" title="Devis annulé" onclick="this.form.submit()" style="font-size: 11px"/>Annulé</label></center><br />';
		  echo '<center><label title="Tous"><input type="radio" name="devisEtat" value="en cours" title="Devis en cours" onclick="this.form.submit()" style="font-size: 11px"/><br />En cours</label></center>';
	  }
	  elseif(isset($_POST['devisEtat']) AND $_POST['devisEtat']=='annule'){
		  echo '<center><label title="Validé">Validé<input type="radio" name="devisEtat" value="valide" title="Devis validé" onclick="this.form.submit()" style="font-size: 11px"/></label>';
		  echo '<label title="Annulé"><input checked="checked" type="radio" name="devisEtat" value="annule" title="Devis annulé" onclick="this.form.submit()" style="font-size: 11px"/>Annulé</label></center><br />';
		  echo '<center><label title="Tous"><input type="radio" name="devisEtat" value="en cours" title="Devis en cours" onclick="this.form.submit()" style="font-size: 11px"/><br />En cours</label></center>';	  
	}
	  elseif(isset($_POST['devisEtat']) AND $_POST['devisEtat']=='en cours'){
		  echo '<center><label title="Validé">Validé<input type="radio" name="devisEtat" value="valide" title="Devis validé" onclick="this.form.submit()" style="font-size: 11px"/></label>';
		  echo '<label title="Annulé"><input type="radio" name="devisEtat" value="annule" title="Devis annulé" onclick="this.form.submit()" style="font-size: 11px"/>Annulé</label></center><br />';
		  echo '<center><label title="Tous"><input checked="checked" type="radio" name="devisEtat" value="en cours" title="Devis en cours" onclick="this.form.submit()" style="font-size: 11px"/><br />En cours</label></center>';
	}
	else{
		echo '<center><label title="Validé">Validé<input type="radio" name="devisEtat" value="valide" title="Devis validé" onclick="this.form.submit()" style="font-size: 11px"/></label>';
		  echo '<label title="Annulé"><input type="radio" name="devisEtat" value="annule" title="Devis annulé" onclick="this.form.submit()" style="font-size: 11px"/>Annulé</label></center><br />';
		  echo '<center><label title="Tous"><input type="radio" name="devisEtat" value="en cours" title="Devis en cours" onclick="this.form.submit()" style="font-size: 11px"/><br />En cours</label></center>';
	}
?>
  </p>
    </li>
<!------------------------------------ FIN ETAT ---------------------------------->

<!--==================================== DEBUT CLIENT =========================================-->
    <li>
    <p align="center"><span style="color:#06F">Rechercher par client</span>
   <?php
	  if(!empty($_POST['devisCli'])){
		  echo '<center><input value="'.$_POST['devisCli'].'" name="devisCli" type="text" placeholder="Nom complet ou une partie" maxlength="20" size="25" title="Rechercher devis par client" style="font-size: 11px"/></center>';
	  }
	else{
		echo '<center><input name="devisCli" type="text" placeholder="Nom complet ou une partie" maxlength="20" size="25" title="Rechercher devis par client" style="font-size: 11px"/></center>';
	}
?>
   <center><input name="submit" type="submit" value="Rechercher" style="font-size: 11px"/></center>
  	</p>
    </li>
<!---------------------------------- FIN CLIENT ---------------------------------->

<!--==================================== DEBUT PERIODE ========================================-->
    <li>
    <p align="center"><span style="color:#06F">Devis par période</span></p>
    
         <!---période d'entré --->
        Début<br />
      <select style="font-size:11px" name="perj1" id="perj1">
      <option value="">Jour</option>
      <?php
	  for($i=1;$i <=31;$i++){
		  $select=($_POST['perj1']==$i)? " selected " : "";
		  if($i<=9){
			echo '<option'.$select.' value="0'.$i.'" $i=>0'.$i.'</option>'; 
		  }
		  else echo '<option'.$select.' value="'.$i.'" $i=>'.$i.'</option>';  
        }
		?>      
      </select>
      <select style="font-size:11px" name="perm1" id="perm1">
      <option value="" >Mois</option>
      <?php
	  $mois2 = array('', 'Jan', 'Fév', 'Mars', 'Avr', 'Mai', 'Juin', 'Juil', 'Aout', 'Sep', 'Oct', 'Nov', 'Déc');
	  for($i=1;$i<13;$i++){
		  $select=($_POST['perm1']==$i)? " selected " : "";
		  if($i<=9){
			echo '<option'.$select.' value="0'.$i.'">'.$mois2[$i].'</option>';
		  }
		  else echo '<option'.$select.' value="'.$i.'">'.$mois2[$i].'</option>';
        }
		?>
      </select>
      <select style="font-size:11px" name="peran1" id="peran1">
      <option value="" >Année</option>
      <?php
	  $y = date('Y');
    	for($i=$y;$i >=$y-1 ;$i--){
			$select=($_POST['peran1']==$i)? " selected " : "";
			echo '<option'.$select.' value="'.$i.'" $i=>'.$i.'</option>';
        }
		?>
	  </select>
      
      <!---période de sortie --->
      <br />Fin<br />
      <select style="font-size:11px" name="perj2" id="perj2">
      <option value="">Jour</option>
      <?php
	  for($i=1;$i <=31;$i++){
		  $select=($_POST['perj2']==$i)? " selected " : "";
		  if($i<=9){
			echo '<option'.$select.' value="0'.$i.'" $i=>0'.$i.'</option>';  
		  }
		  else echo '<option'.$select.' value="'.$i.'" $i=>'.$i.'</option>';  
        }
		?>      
      </select>
      <select style="font-size:11px" name="perm2" id="perm2">
      <option value="" >Mois</option>
      <?php
	  $mois2 = array('', 'Jan', 'Fév', 'Mars', 'Avr', 'Mai', 'Juin', 'Juil', 'Aout', 'Sep', 'Oct', 'Nov', 'Déc');
	  for($i=1;$i<13;$i++){
		  $select=($_POST['perm2']==$i)? " selected " : "";
		  if($i<=9){
			echo '<option'.$select.' value="0'.$i.'">'.$mois2[$i].'</option>';
		  }
		  else echo '<option'.$select.' value="'.$i.'">'.$mois2[$i].'</option>';
        }
		?>
      </select>
      <select style="font-size:11px" name="peran2" id="peran2">
      <option value="" >Année</option>
      <?php
	  $y = date('Y');
    	for($i=$y;$i >=$y-1 ;$i--){
			$select=($_POST['peran2']==$i)? " selected " : "";
			echo '<option'.$select.' value="'.$i.'" $i=>'.$i.'</option>';
        }
		?>
	  </select>
      <br /><br />
      <center><input name="submit" type="submit" value="Rechercher" style="font-size: 11px"/></center>
    </li>
<!------------------------------------FIN PERIODE---------------------------------->
</form>
</ul>
</div>
<!--======================================================= FIN CRITERES DE RECHERCHE ====================================================-->

<!-------------------------------------------------------- FIN MENU DE GAUCHE --------------------------------------------------------->

<!------------------------------------------------------------ DEBUT CONTENU --------------------------------------------------------->
<div id="contenu">
<h1>ESPACE DEVIS</h1>
<h2>Liste des devis en base</h2>
<h2 class="info" style="color:#00CC00">
<?php 
	//$_SESSION['critere'] = array();

	if(!empty($_POST)){
		$_SESSION['critere'] = $_POST;
		
if(isset($_SESSION['critere']))
	extract($_SESSION['critere']);//on extrait les critères choisis pour ne plus redefinir des variables
	
$critere = array();//declaration du tablaeau qui va prendre tous les critères choisis.

	//on met le critere dans le tableau si il n'est pas null
	if(isset($devisCom) AND !empty($devisCom)){ $critere[] = 'D.idCommercial = '.$devisCom.' '; }
	if(isset($devisEtat) AND !empty($devisEtat)){ $critere[] = 'etatDevis = "'.$devisEtat.'" '; }
	if(isset($devisCli) AND !empty($devisCli)){ $critere[] = 'Cli.raisonSocialClient LIKE "%'.$devisCli.'%" '; }
	if(isset($perj1) AND !empty($perj1) AND 
		isset($perm1) AND !empty($perm1) AND 
		isset($peran1) AND !empty($peran1) AND 
		isset($perj2) AND !empty($perj2) AND 
		isset($perm2) AND !empty($perm2) AND 
		isset($peran2) AND !empty($peran2)){ 
	$per1 = $peran1.'-'.$perm1.'-'.$perj1.' 00:00:00';
	$per2 = $peran2.'-'.$perm2.'-'.$perj2.' 23:59:59';
	$critere[] = "dateEnregistrementDevis BETWEEN '".$per1."' AND '".$per2."' "; 
	}
	
	
	$critereALL = implode(' AND ', $critere);//on met tous les critères dans un string
	}
?>
</h2>
<hr width="450px" color="#0066FF" align="left"/>
<?php
if(!empty($_SESSION['critere']))
	//print_r ($_SESSION['critere']/*['devisEtat']*/);
//récupération du msg de confirmation de modification ou d'ajout
if (isset($_GET['msg'])){
	$msg = $_GET['msg'];
	if($msg=='1'){
	$msg = 'Le devis a correctement été ajouté.';
	}
	else $msg = 'Le devis a été correctement modifié.';
	echo '<h2  class="info" style="color:#00CC00">'.$msg.'<img src="../images/icones/icones/accepter-verifier-vert-ok-oui-icone-6380-48.png" /></h2>';
	echo '<br />';
}
?>

<p>
<?php
//interrogeons la base de donnée en fonction du privilège du commercial
if($_SESSION['privilege']=='Administrateur'){
	if(!empty($critereALL) AND isset($_SESSION['critere'])){
		$nbEnr = 'SELECT COUNT(*) AS total
		FROM devis D,commercial Com,client Cli
		WHERE D.idClient=Cli.idClient AND D.idCommercial = Com.idCommercial AND '.$critereALL.'';
			//appel de la fonction qui calcul le nombre d'enregistrements
			$total = calculTotal($nbEnr);
			
			//Nous allons maintenant compter le nombre de pages.
			$nombreDePages=ceil($total/messagesParPage);
			
			$pageActuelle = pageactuelle($nombreDePages);
			$premiereEntree = preentree($pageActuelle);
		
		$requete = 'SELECT * ,Com.nomCommercial, Cli.raisonSocialClient
		FROM devis D,commercial Com,client Cli
		WHERE D.idClient=Cli.idClient AND D.idCommercial = Com.idCommercial AND '.$critereALL.'
		ORDER BY raisonSocialClient LIMIT '.$premiereEntree.', '.messagesParPage.'';	
		}
		//tous les devis
		else{
			$nbEnr = 'SELECT COUNT(*) AS total FROM devis';
			//appel de la fonction qui calcul le nombre d'enregistrements
			$total = calculTotal($nbEnr);
			
			//Nous allons maintenant compter le nombre de pages.
			$nombreDePages=ceil($total/messagesParPage);
			
			$pageActuelle = pageactuelle($nombreDePages);
			$premiereEntree = preentree($pageActuelle);
			
			$requete = 'SELECT * ,Com.nomCommercial, Cli.raisonSocialClient
				FROM devis D,commercial Com,client Cli
				WHERE D.idClient=Cli.idClient AND D.idCommercial = Com.idCommercial
				ORDER BY raisonSocialClient LIMIT '.$premiereEntree.', '.messagesParPage.'';
		}	//fin if liste par Com
	 
	$texte = '<p align="right">La base contient actuellement ';
	
}/**************************************************** fin if admin**************************************************************/
elseif($_SESSION['privilege']!='Administrateur'){
	//Devis par etat
	if(isset($_POST['devisEtat'])){
			$parEtat = $_POST['devisEtat'];
			
			$requete = 'SELECT * ,Com.nomCommercial, Cli.raisonSocialClient
						FROM devis D,commercial Com,client Cli
						WHERE D.idClient=Cli.idClient AND D.idCommercial = Com.idCommercial AND
						D.idCommercial = "'.$_SESSION['id'].'"AND etatDevis = "'.$parEtat.'"
						ORDER BY raisonSocialClient';	
						
		}
		//Devis par client
	elseif(isset($_POST['submit']) AND !empty($_POST['devisCli'])){
			$parCli = $_POST['devisCli'];
								
			$requete = 'SELECT * ,Com.nomCommercial, Cli.raisonSocialClient
				FROM devis D,commercial Com,client Cli
				WHERE D.idClient=Cli.idClient AND D.idCommercial = Com.idCommercial AND
				D.idCommercial = "'.$_SESSION['id'].'" AND Cli.raisonSocialClient LIKE "%'.$parCli.'%"
				ORDER BY raisonSocialClient';
		}
		//devis par période
		elseif(isset($_POST['rechPeriode']) AND
				!empty($_POST['perj1']) AND !empty($_POST['perj2']) AND
				!empty($_POST['perm1']) AND !empty($_POST['perm2']) AND
				!empty($_POST['peran1']) AND !empty($_POST['peran2'])){
			$per1 = $_POST['peran1'].'-'.$_POST['perm1'].'-'.$_POST['perj1'];
			$per2 = $_POST['peran2'].'-'.$_POST['perm2'].'-'.$_POST['perj2'];
											
			$requete = 'SELECT * ,Com.nomCommercial, Cli.raisonSocialClient
				FROM devis D,commercial Com,client Cli
				WHERE D.idClient=Cli.idClient AND D.idCommercial = Com.idCommercial AND D.idCommercial = "'.$_SESSION['id'].'" AND 
				dateEtatDevis BETWEEN "'.$per1."' AND '".$per2.'"
				ORDER BY raisonSocialClient';
		}
		//tous les devis
		else{
			$nbEnr = 'SELECT COUNT(*) AS total FROM devis WHERE idCommercial = "'.$_SESSION['id'].'"';
			//appel de la fonction qui calcul le nombre d'enregistrements
			$total = calculTotal($nbEnr);
			
			//Nous allons maintenant compter le nombre de pages.
			$nombreDePages=ceil($total/messagesParPage);
			
			$pageActuelle = pageactuelle($nombreDePages);
			$premiereEntree = preentree($pageActuelle);
			
			$requete = 'SELECT *,Com.nomCommercial,Cli.raisonSocialClient
				FROM devis D,commercial Com,client Cli
				WHERE D.idClient=Cli.idClient AND D.idCommercial = Com.idCommercial AND D.idCommercial = "'.$_SESSION['id'].'"
				ORDER BY Cli.raisonSocialClient LIMIT '.$premiereEntree.', '.messagesParPage.'';
			$texte = '<p align="right">Vous avez la charge de ';
		}	//fin if liste par Com
		
}

//debut de la pagination
function calculTotal($nbEnr){
	$retour_total=mysql_query($nbEnr) or die(mysql_error()); //Nous récupérons le contenu de la requête dans $retour_total
	$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
	$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.

return $total;
}

function pageactuelle($nombreDePages){
	if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
     $pageActuelle=intval($_GET['page']);
     
     if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
     {
          $pageActuelle=$nombreDePages;
     }
}
else // Sinon
{
     $pageActuelle=1; // La page actuelle est la n°1    
}

return $pageActuelle;
}

function preentree($pageActuelle){
	$premiereEntree=($pageActuelle-1)*messagesParPage; // On calcul la première entrée à lire

return $premiereEntree;
}

$rep = mysql_query($requete) or die(mysql_error());

	echo '<br /><br /><table class="tableauDevis">
	<tr class="titreTable">
	<td align=center>N°</td>
	<td align=center>CLIENT</td>
	<td align=center>COMMERCIAL</td>
	<td align=center>DATE D\'ENREGISTREMENT</td>
	<td align=center>DESCRIPTION</td>
	<td align=center>MONTANT</td>
	<td align=center>PROCHAIN RDV</td>
	<td align=center>ECHEANCE</td>
	<td align=center>ETAT</td>
	<td align=center>DATE ETAT</td>
	<td align=center>OBSERVATION</td>
</tr>';

$nb_ligne = mysql_num_rows($rep);
if(!empty($pageActuelle)){
	$nb_ligne = $total;
}
while($ret= mysql_fetch_array($rep)){
echo'<tr> 
<td>'.$ret['numDevis'].'</td>
<td>'.$ret['raisonSocialClient'].'</td>
<td>'.$ret['nomCommercial'].'</td>
<td>'.$ret['dateEnregistrementDevis'].'</td>
<td>'.$ret['descriptionDevis'].'</td>
<td>'.$ret['montantTotalDevis'].'</td>
<td>'.$ret['prochainRDVDevis'].'</td>
<td>'.$ret['echanceProjetDevis'].'</td>
<td>'.$ret['etatDevis'].'</td>
<td>'.$ret['dateEtatDevis'].'</td>
<td>'.$ret['observationDevis'].'</td>
</tr>';
}//fin while
echo '</table>';

//Pour l'affichage, on centre la liste des pages
if(!empty($pageActuelle)){
	echo '<p align="center">Page : '; 
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo ' [ '.$i.' ] '; 
     }	
     else //Sinon...
     {
          echo ' <a href="liste-devis.php?page='.$i.'">'.$i.'</a> ';
     }
}
echo '</p>';
}
?>
</p>

<?php echo $texte.'<b style="color:red">'.$nb_ligne.'</b> devis.</p>'?> 
</div>
<!------------------------------------------------------------ FIN CONTENU --------------------------------------------------------->

<?php
  include('includes/bas.php');
  mysql_close();
?>