Page 1 sur 2
Sélection avec plusieurs critères
Posté : 07 mai 2013, 12:32
par NUAGE
Bonjour à tous,
J'ai une table établissement sur laquelle je veux faire une recherche selon les départements. J'arrive à faire une recherche suivant un département mais je veux pouvoir faire une recherche suivant plusieurs départements.
Pourriez-vous m'aider s'il-vous-plaît.
Le code :
<html>
<body>
<p> Recherche d'un établissement : </p>
<form action="selectiondpt.php" method="GET">
<p> Département sélectionné : <input type="text" name="nom"> </p>
<input type="submit" value="Rechercher">
</form>
</body>
</html>
<?php
if(isset($_GET['nom']) && !empty($_GET['nom'])){
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 * from Etablissement where dpt='".$_GET['nom']."'";
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['nomEtablissement']."</td><td>".$row['adresse']."</td><td>".$row['cp']."</td><td>".$row['ville']."</td></tr>";
echo "</table>";
}
}
?>
Merci de votre aide.
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 12:36
par ghost5922
Bonjour,
tu veux pouvoir recherche dans plusieurs champ de table ou mettre plusieurs valeur dans ton input ?
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 12:39
par NUAGE
Merci de répondre toujours aussi rapidement
Je veux seulement pouvoir sélectionner plusieurs départements dans un input, les autres champs ne m'intéresse pas pour la sélection du moins.
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 12:45
par ghost5922
Bonjour,
pas de souci, mais désolé si j'ai du mal a comprendre je veux seulement pouvoir selectionner plusieurs departements dans un inputs pourquoi ne pas utilise checkbox ou un select multiple
ou tu veux un input avec par exemple : lille paris etc et une fois valide on recherche tout ?
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 12:48
par NUAGE
Bonjour,
Voilà, je veux que ça me sélectionne tout les enregistrements ayant pour dpt Paris et Lille.
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 13:13
par NUAGE
J'ai fait un des checkbox mais je n'ai aucun résultat.
<html>
<body>
<p> Recherche d'un établissement : </p>
<form action="selectiondpt.php" method="GET">
<p> Département sélectionné :
<input type="checkbox" name="nom[]" value="37"> 37
<input type="checkbox" name="nom[]" value="45"> 45
<input type="checkbox" name="nom[]" value="36"> 36
<input name="valider" type="submit" value="Valider">
</form>
</body>
</html>
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 13:27
par ghost5922
Bonjour,
si j'ai bien compris tu veux un menu select ville et depuis cette sélection avoir les département du premier select ?
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 13:30
par NUAGE
Je veux un select département seulement suivant les départements présents dans ma base et en résultat je veux tout les établissements de ce département.
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 13:33
par ghost5922
Bonjour,
il vous suffi de faire une requête qui va juste sélectionne les départements pressent est liste le tous dans un select
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 13:45
par NUAGE
C'est ce que j'ai fais,
<?php
require("connect.php");
$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 Salarie";
else{
?>
<form action="selectiondpt.php" method="GET">
<select name="nom">
<?php
foreach ($connexion->query($sql) as $row){
echo "<option value=".$row['dpt'].">".$row['dpt']."</option>";
}
}
?>
</select>
<input type="submit" value="Rechercher">
</form>
Cependant, je veux pouvoir en sélectionner deux et avoir les résultats des deux
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 13:51
par ghost5922
alors il faut mettre un select multible comme dit plus haut
un exemple
http://www.bernardquevillier.fr/toposnew/select.htm
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 13:57
par NUAGE
Je l'ai fait :
<?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']."</option>";
}
}
?>
</select>
<input type="submit" value="Rechercher">
</form>
Cependant ce n'est pas ce que je veux faire, je veux pouvoir rentrer soit à la main dans un input ou cocher avec un checkbox deux, trois, voire 4 départements et pouvoir afficher tout les enregistrements de ceux-ci.
J'ai sûrement mal exprimé ce que je voulais faire...
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 14:06
par ghost5922
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
Re: Sélection avec plusieurs critères
Posté : 07 mai 2013, 14:15
par NUAGE
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
Posté : 07 mai 2013, 14:25
par ghost5922
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