[RESOLU] Recherche multicritère

Eléphant du PHP | 167 Messages

15 mai 2013, 11:35

J'ai un léger problème c'est que mon tableau dans les lesquels je veux mettre mes résultats d'établissements contient déjà un établissement par défaut en autre le dernier de ma liste, et puis quand je recherche rien ne s'affiche d'autre...

Mammouth du PHP | 619 Messages

15 mai 2013, 11:36

Bonjour,

meme avec ce code ?
if(isset($_POST['checkbox']) and !empty($_POST['checkbox'])){$where.=implode($_POST['checkbox']," and ")." and ";}

Eléphant du PHP | 167 Messages

15 mai 2013, 11:43

Oui, je n'ai qu'un résultat qui s'affiche pourtant pour certaines sélection il y a forcément plusieurs résultats.
A chaque fois en fait, c'est le dernier résultat de la sélection qui s'affiche...et ça ne prend même pas en considération le critère de département.
Je ne comprend pas...

Mammouth du PHP | 619 Messages

15 mai 2013, 11:49

ok et comme ceci
if(isset($_POST['checkbox']) and !empty($_POST['checkbox'])){$where2.=implode("dpt = '".$_POST['checkbox'],"' and ")." and ";}

Eléphant du PHP | 167 Messages

15 mai 2013, 11:50

Le même warning que tout à l'heure et en plus il ne connait pas $where2

Mammouth du PHP | 619 Messages

15 mai 2013, 12:04

if(isset($_POST['checkbox']) and !empty($_POST['checkbox'])){$where.="(dpt='".implode("' or dpt='",$_POST['checkbox'])."')

Eléphant du PHP | 167 Messages

15 mai 2013, 12:10

J'ai ce message : Problème d'accès à la table Etablissement

Mammouth du PHP | 619 Messages

15 mai 2013, 12:13

j'ai oublie un bou du code ^^

if(isset($_POST['checkbox']) and !empty($_POST['checkbox'])){$where2.="(dpt='".implode("' or dpt='",$_POST['checkbox'])."') and ";}

Eléphant du PHP | 167 Messages

15 mai 2013, 12:22

Il prend en compte maintenant le critère du département mais cependant je ne peux pas en choisir plusieurs et puis toujours le même problème de l'affichage, il m'affiche le dernier établissement trouvé
Par contre j'ai enlevé le 2 à where sinon ça ne marchais pas
if(isset($_POST['checkbox']) and !empty($_POST['checkbox'])){$where.="(dpt='".implode("' or dpt='",$_POST['checkbox'])."') and ";}

Mammouth du PHP | 619 Messages

15 mai 2013, 12:32

Re,

si tu ne veux pas en choisir plusieurs pourquoi avoir mi une checkbox ?

Eléphant du PHP | 167 Messages

15 mai 2013, 12:35

C'est pas que je ne veux pas mais je ne peux pas, moi je voudrais pouvoir en choisir plusieurs

Mammouth du PHP | 619 Messages

15 mai 2013, 12:40

Re,

c'est le cas normalement re post le code php

Eléphant du PHP | 167 Messages

15 mai 2013, 12:44

Le voici :
<?php
     $where="";      

if(isset($_POST['dpt']) and !empty($_POST['dpt'])){$where.="dpt = '".$_POST['dpt']."' and ";}
if(isset($_POST['nature']) and !empty($_POST['nature'])){$where.="nature = '".$_POST['nature']."' and ";}
if(isset($_POST['checkbox'])){$where.=implode($_POST['checkbox'])." and";}
if(isset($_POST['checkbox']) and !empty($_POST['checkbox'])){$where.="(dpt='".implode("' or dpt='",$_POST['checkbox'])."') and ";}
if(!empty($where)){$where = 'where '.substr($where, 0, -4);}
;
$sql="SELECT * from Etablissement $where order by nomEtablissement";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";
else{
       echo "<table><tr><td>NOM D'ETABLISSEMENT</td></tr>";
     foreach ($connexion->query($sql) as $row)
      ?>
<form action="" method="POST">

   <p>Département</p>
 
  <input type="checkbox" name="checkbox[]"  value="75">75
<input type="checkbox" name="checkbox[]"  value="92">92

<input type="checkbox" name="checkbox[]"  value="95">95
<input type="checkbox" name="checkbox[]"      value="98">98

    <p>Nature</p>
  <input type="radio" name="nature"value="1">Université
   <input type="radio" name="nature" value="2">Ecole d'ingénieur
               
              
       <input type="submit" value="Rechercher">  

</form>
<?php
   echo "<br><a href=\"etablissement1.php?idEtablissement=".$row['idEtablissement'].'">'.'<br/>'.$row['nomEtablissement'];
   echo "</table>";    
           
}      
 ?>
 

Mammouth du PHP | 619 Messages

15 mai 2013, 12:46

test comme cela
<?php
     $where="";      

if(isset($_POST['dpt']) and !empty($_POST['dpt'])){$where.="dpt = '".$_POST['dpt']."' and ";}
if(isset($_POST['nature']) and !empty($_POST['nature'])){$where.="nature = '".$_POST['nature']."' and ";}
if(isset($_POST['checkbox']) and !empty($_POST['checkbox'])){$where.="(dpt='".implode("' or dpt='",$_POST['checkbox'])."') and ";}
if(!empty($where)){$where = 'where '.substr($where, 0, -4);}
;
$sql="SELECT * from Etablissement $where order by nomEtablissement";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";
else{
       echo "<table><tr><td>NOM D'ETABLISSEMENT</td></tr>";
     foreach ($connexion->query($sql) as $row)
      ?>

Eléphant du PHP | 167 Messages

15 mai 2013, 12:54

Aucun changement... :?