par
mbmk92 » 27 juin 2013, 11:59
Contrairement a baddevil, quand je clic sur la page suivante sa exécute la requete par défaut! comment faire pour que la page suivante des critères sélectionnés apparaissent et non la page suivante de la requete par défaut??
Je suis complètement suspendu à votre aide... Encore merci d'avance pour votre aide!! voici mon code
//$_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
}
exécution de la requête
//interrogeons la base de donnée en fonction du privilège du commercial
if($_SESSION['privilege']=='Administrateur'){
if(!empty($critereALL)){
$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 ';
Contrairement a baddevil, quand je clic sur la page suivante sa exécute la requete par défaut! comment faire pour que la page suivante des critères sélectionnés apparaissent et non la page suivante de la requete par défaut?? :(
Je suis complètement suspendu à votre aide... Encore merci d'avance pour votre aide!! voici mon code
[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
}[/php]
exécution de la requête
[php]
//interrogeons la base de donnée en fonction du privilège du commercial
if($_SESSION['privilege']=='Administrateur'){
if(!empty($critereALL)){
$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 ';
[/php]