[RESOLU] Sélection avec plusieurs critères

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] Sélection avec plusieurs critères

Re: [RESOLU] Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 16:39

pas de souci bon courage pour la suite

Re: Sélection avec plusieurs critères

par NUAGE » 07 mai 2013, 16:24

Ça marche !
Encore une fois merci beaucoup, j'avais un problème d'espace... #-o

Merci pour ton aide si précieuse ghost5922 :D

Re: Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 16:17

tu peu faire un echo de $idDepartement juste avant ta requet

Re: Sélection avec plusieurs critères

par NUAGE » 07 mai 2013, 16:14

Toujours pas puisque j'ai ceci "Pb d'accès à la table Etablissement"

Re: Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 16:07

voila j'ai oublie un point
<?php 

require("connect.php");
if(isset($_GET['checkbox']) ){
	$idDepartement="";
	foreach($_GET['checkbox'] as $valeur){
    	echo 'Vous avez sélectionné les départements '.htmlentities($valeur).'<br />';
		$idDepartement.="dpt='".$valeur."' or ";
	}
	if(!empty($idDepartement)){$idDepartement = substr($idDepartement, 0, -3);}

  $dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
 	$sql="SELECT * from Etablissement where $idDepartement";
	if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";

	else {
    	echo "<table><tr><td>DEPARTEMENT</td><td>NOM</td><td>ADRESSE</td><td>CODE POSTAL</td><td>VILLE</td></tr>";
    	foreach ($connexion->query($sql) as $row){
    		echo "<tr><td>".$row['dpt']."</td><td>".$row['nomSalarie']."</td><td>".$row['adresse']."</td><td>".$row['cp']."</td><td>".$row['ville']."</td></tr>";
		}
   		echo "</table>";
	}
}

?>

Re: Sélection avec plusieurs critères

par NUAGE » 07 mai 2013, 15:48

Le voici

<?php
require("connect.php");
// pour oracle: $dsn="oci:dbname=//serveur:1521/mydb
$dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
$sql="SELECT DISTINCT(dpt) from Etablissement order by dpt";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";
else{
        ?>
        <form action="selectiondpt.php" method="GET">
      
                <?php
        foreach ($connexion->query($sql) as $row){
  echo $row['dpt'].' <input type="checkbox" name="checkbox[]" value="'.$row['dpt'].'">';
           
}
}      
?>

<input type="submit" value="Rechercher">

</form>


Re: Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 15:46

reposte ton dernier formulaire stp

Re: Sélection avec plusieurs critères

par NUAGE » 07 mai 2013, 15:39

Array ( [checkbox] => Array ( [0] => 13 [1] => 85 [2] => 86 [3] => 93 [4] => 95 ) )

Ça m'affiche que les résultats de 95 et puis si je reviens en arrière et coche le département 06 j'ai ceci :


Array ( [checkbox] => Array ( [0] => 06 [1] => 13 [2] => 85 [3] => 86 [4] => 93 [5] => 95 ) )

Mais ça garde que résultats de 95

Et si je coche au contraire un département 98 :

Array ( [checkbox] => Array ( [0] => 06 [1] => 13 [2] => 85 [3] => 86 [4] => 93 [5] => 95 [6] => 98 ) )

Et ça m'affiche les résultats de celui-ci


Finalement, ça n'affiche pas tout les départements des cases cochés.

Re: Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 15:25

retester avec ce code
<?php 

require("connect.php");
if(isset($_GET['checkbox']) ){
	$idDepartement="";
	foreach($_GET['checkbox'] as $valeur){
    	echo 'Vous avez sélectionné les départements '.htmlentities($valeur).'<br />';
		$idDepartement="dpt='".$valeur."' or ";
	}
	if(!empty($idDepartement)){$idDepartement = substr($idDepartement, 0, -3);}

  $dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
 	$sql="SELECT * from Etablissement where $idDepartement";
	if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";

	else {
    	echo "<table><tr><td>DEPARTEMENT</td><td>NOM</td><td>ADRESSE</td><td>CODE POSTAL</td><td>VILLE</td></tr>";
    	foreach ($connexion->query($sql) as $row){
    		echo "<tr><td>".$row['dpt']."</td><td>".$row['nomSalarie']."</td><td>".$row['adresse']."</td><td>".$row['cp']."</td><td>".$row['ville']."</td></tr>";
		}
   		echo "</table>";
	}
}

?>
votre checkbox ce nome bien checkbox[] ?

si cela marche pas ajouter un print_r($_GET); en haut de la page

Re: Sélection avec plusieurs critères

par NUAGE » 07 mai 2013, 15:20

Je viens de tester, et ça m'affiche ceci "Pb d'accès à la table Etablissement"

Re: Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 15:13

Bonjour,

comme je vous l'ai annonce c'est un tableau vous le traite en haut mais pas dans votre requete tester avec cela
<?php 

require("connect.php");
if(isset($_GET['checkbox']) ){
	$idDepartement="";
	foreach($_GET['checkbox'] AS $valeur){
    	echo 'Vous avez sélectionné les départements '.htmlentities($valeur).'<br />';
		$idDepartement="dpt='".$valeur."' or ";
	}
	if(!empty($idDepartement)){$idDepartement = substr($idDepartement, 0, -3);}

  $dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
 	$sql="SELECT * from Etablissement where $idDepartement";
	if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";

	else {
    	echo "<table><tr><td>DEPARTEMENT</td><td>NOM</td><td>ADRESSE</td><td>CODE POSTAL</td><td>VILLE</td></tr>";
    	foreach ($connexion->query($sql) as $row){
    		echo "<tr><td>".$row['dpt']."</td><td>".$row['nomSalarie']."</td><td>".$row['adresse']."</td><td>".$row['cp']."</td><td>".$row['ville']."</td></tr>";
		}
   		echo "</table>";
	}
}

?>

Re: Sélection avec plusieurs critères

par NUAGE » 07 mai 2013, 15:03

Avec ceci :
<?php 

  require("connect.php");
if(isset($_GET['checkbox']) ){


          foreach($_GET['checkbox'] AS $valeur)
          {
                echo 'Vous avez sélectionné les départements '.htmlentities($valeur).'<br />';
          

  $dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
 $sql="SELECT * from Etablissement where dpt='".$_GET['checkbox']."'";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";

else 
  {
    echo "<table><tr><td>DEPARTEMENT</td><td>NOM</td><td>ADRESSE</td><td>CODE POSTAL</td><td>VILLE</td></tr>";
     foreach ($connexion->query($sql) as $row)
     echo "<tr><td>".$row['dpt']."</td><td>".$row['nomSalarie']."</td><td>".$row['adresse']."</td><td>".$row['cp']."</td><td>".$row['ville']."</td></tr>";
   echo "</table>";
}

?>

Mais ça ne m'affiche toujours rien comme résultats, ça me dit quels départements ont été sélectionné mais il n'y a pas de traitement.

Re: Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 14:25

Oui si vous préférez des checkbox c'est possible
<?php
require("connect.php");
// pour oracle: $dsn="oci:dbname=//serveur:1521/mydb
$dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
$sql="SELECT DISTINCT dpt from Etablissemet order by dpt";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";
else{
        ?>
        <form action="selectiondpt.php" method="GET">
                        <?php
        foreach ($connexion->query($sql) as $row){

           echo $row['dpt'].' <input type="checkbox" name="nom[]" value="'.$row['dpt'].'">';
           
}
}      
?>

<input type="submit" value="Rechercher">

</form>
voila normalement cela va vous retourne un tableau avec les resultat donc ne pas faire $_POST['nom'] cela va vous retourne un tableau il faut le traite avant

Re: Sélection avec plusieurs critères

par NUAGE » 07 mai 2013, 14:15

En effet, mais est-ce que je peux remplacer option dans
echo "<option value=".$row['dpt'].">".$row['dpt']."</option>";
par un input type="checkbox" ?

Re: Sélection avec plusieurs critères

par ghost5922 » 07 mai 2013, 14:06

Bonjour,

il a une erreur dans votre code regarde bien il ne ferme pas la balise option
<SELECT multiple name="couleurs" SIZE=4>
  <OPTION selected>Vert
  <OPTION>Rouge 
  <OPTION>Bleu
  <OPTION>Orange
  <OPTION selected>Marron clair
  <OPTION>Magenta
  <OPTION>Rose
  <OPTION disabled>Noir
  <OPTION>Blanc
  <OPTION disabled>Gris
</SELECT>
cela donne pour vous
<?php
require("connect.php");
// pour oracle: $dsn="oci:dbname=//serveur:1521/mydb
$dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
$sql="SELECT DISTINCT dpt from Etablissemet order by dpt";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Etablissement";
else{
        ?>
        <form action="selectiondpt.php" method="GET">
        <select multiple name="nom">
                <?php
        foreach ($connexion->query($sql) as $row){

           echo "<option value=".$row['dpt'].">".$row['dpt'];
           
}
}      
?>
</select>
<input type="submit" value="Rechercher">

</form>

pour le input cela reste moin bon car si votre client se trompe ou dois a chaque fois retape chaque département