Recherche avec un ou plusieurs champs selectionné
Charleeeee
Messages postés
13
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour à vous,
Je suis actuellement entrain de développer une application en PHP .
Et j'ai fais un fichier qui permet de rechercher avec 3 select différents, avec plusieurs résultats possible, il y a :
- 1) Si le champ 1 est selectionné alors requete pour affichage selon se qui est entré dans le select 1
- 2) Si le champ 2 est selectionné alors requete pour affichage selon se qui est entré dans le select 2
- 3) Si le champ 3 esr selectionné alors requete pour affichage selon se qui est entré dans le select 2
- 4) Si les champs 1 et 2 sont selectionné alors requete pour affichage selon se qui est entré dans le select 1 et select 2
- 5) Si les champs 2 et 3 sont selectionné alors requete pour affichage selon se qui est entré dans le select 2 et select 3
Mais je n'arrive pas à faire les points 4 et 5.
Pouvez vous m'aider ?
Merci par avance
Je suis actuellement entrain de développer une application en PHP .
Et j'ai fais un fichier qui permet de rechercher avec 3 select différents, avec plusieurs résultats possible, il y a :
- 1) Si le champ 1 est selectionné alors requete pour affichage selon se qui est entré dans le select 1
- 2) Si le champ 2 est selectionné alors requete pour affichage selon se qui est entré dans le select 2
- 3) Si le champ 3 esr selectionné alors requete pour affichage selon se qui est entré dans le select 2
- 4) Si les champs 1 et 2 sont selectionné alors requete pour affichage selon se qui est entré dans le select 1 et select 2
- 5) Si les champs 2 et 3 sont selectionné alors requete pour affichage selon se qui est entré dans le select 2 et select 3
Mais je n'arrive pas à faire les points 4 et 5.
Pouvez vous m'aider ?
Merci par avance
//1) ES CE QUE LE CHAMP MARQUE EST REMPLI == FONCTIONNE
if(!empty($marque)){
$query = $mysqli -> query("SELECT * FROM association_user_marque
INNER JOIN user
ON association_user_marque.id_user = user.id_user
INNER JOIN marque
ON association_user_marque.id_marque = marque.id_marque
WHERE association_user_marque.id_marque = '$marque'
");
$nb = $query -> num_rows;
if($nb > 0){
while($row = $query -> fetch_array()){
echo "<div class=\"col-md-4\">";
echo "<h3>".utf8_encode($row["prenom"])."</h3>";
echo "<p>".utf8_encode($row["nom_marque"])."</p>";
echo "<p>".utf8_encode($row["description"])."</p>";
echo "<p>".utf8_encode($row["id_region"])."</p>";
echo "<a href=\"fiche_representant.php?rps=".$row["id_user"]."\" title=\"En savoir plus\">En Savoir Plus</a>";
echo "</div>";
}
}else{
echo "<p>Il n'y a aucun résultat pour votre recherche</p>";
$query = $mysqli -> query("SELECT * FROM association_user_marque
INNER JOIN user
ON association_user_marque.id_user = user.id_user
INNER JOIN marque
ON association_user_marque.id_marque = marque.id_marque
");
while($row = $query -> fetch_array()){
echo "<div class=\"col-md-4\">";
echo "<h3>".utf8_encode($row["prenom"])."</h3>";
echo "<p>".utf8_encode($row["nom_marque"])."</p>";
echo "<p>".utf8_encode($row["description"])."</p>";
echo "<p>".utf8_encode($row["id_region"])."</p>";
echo "<a href=\"fiche_representant.php?rps=".$row["id_user"]."\" title=\"En savoir plus\">En Savoir Plus</a>";
echo "</div>";
}
}
//2) ES CE QUE LES CHAMPS 1 ET 2 SONT SELECTIONNÉ == NE FONCTIONNE PAS
}else if((isset($_POST["marque"]))&&(isset($_POST["region"]))){
$query = $mysqli -> query("SELECT * FROM association_user_marque
INNER JOIN user
ON association_user_marque.id_user = user.id_user
INNER JOIN marque
ON association_user_marque.id_marque = marque.id_marque
WHERE association_user_marque.id_marque = '$marque'
AND user.id_region = '$region'
");
$nb = $query -> num_rows;
if($nb > 0){
while($row = $query -> fetch_array()){
echo "<div class=\"col-md-4\">";
echo "<h3>".utf8_encode($row["prenom"])."</h3>";
echo "<p>".utf8_encode($row["nom_marque"])."</p>";
echo "<p>".utf8_encode($row["description"])."</p>";
echo "<p>".utf8_encode($row["id_region"])."</p>";
echo "<a href=\"fiche_representant.php?rps=".$row["id_user"]."\" title=\"En savoir plus\">En Savoir Plus</a>";
echo "</div>";
}
}
A voir également:
- Recherche avec un ou plusieurs champs selectionné
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche image - Guide
- Rechercher ou entrer l'adresse 4 - recherche google ✓ - Forum Mozilla Firefox
- Word mettre à jour tous les champs - Forum Word
1 réponse
bonjour, deux anomalies:
1) tu continues à utiliser les $_POST alors que, si je vois bien (tu ne montres qu'une partie de ton code), tu as des variables comme $marque et $region
2) la logique de ton programme semble être:
te rends-tu compte que "cela" ne sera jamais effectué?
as-tu une idée de comment corriger?
1) tu continues à utiliser les $_POST alors que, si je vois bien (tu ne montres qu'une partie de ton code), tu as des variables comme $marque et $region
2) la logique de ton programme semble être:
si marque est sélectionné, je fais ceci sinon, si marque et région sont sélectionnés, je fais cela.
te rends-tu compte que "cela" ne sera jamais effectué?
as-tu une idée de comment corriger?
Et sinon nan justement je n'ai pas d'idée ..
Parce que moi j'aimerai dire : Si marque est selectionné, j'affiche, ou si marque et région sont selectionné alors j'affiche autre chose
Mais je dois pas avoir la bonne logique ..
tu peux corriger simplement en faisant ainsi:
donc, dans ton cas:
est-ce clair ainsi?
Merci
//SI LES CHAMPS MARQUE ET REGION SONT POSTES : if((isset($marque))&&(isset($region))){ $query = $mysqli -> query("SELECT * FROM association_user_marque INNER JOIN user ON association_user_marque.id_user = user.id_user INNER JOIN marque ON association_user_marque.id_marque = marque.id_marque WHERE association_user_marque.id_marque = '$marque' AND user.id_region = '$region' "); $nb = $query -> num_rows; if($nb > 0){ while($row = $query -> fetch_array()){ echo "<div class=\"col-md-4\">"; echo "<p>Salut</p>"; echo "<h3>".utf8_encode($row["prenom"])."</h3>"; echo "<p>".utf8_encode($row["nom_marque"])."</p>"; echo "<p>".utf8_encode($row["description"])."</p>"; echo "<p>".utf8_encode($row["id_region"])."</p>"; echo "<a href=\"fiche_representant.php?rps=".$row["id_user"]."\" title=\"En savoir plus\">En Savoir Plus</a>"; echo "</div>"; } } }else if(isset($marque)){ $query = $mysqli -> query("SELECT * FROM association_user_marque INNER JOIN user ON association_user_marque.id_user = user.id_user INNER JOIN marque ON association_user_marque.id_marque = marque.id_marque WHERE association_user_marque.id_marque = '$marque' "); $nb = $query -> num_rows; if($nb > 0){ while($row = $query -> fetch_array()){ echo "<div class=\"col-md-4\">"; echo "<p>Salut marque</p>"; echo "<h3>".utf8_encode($row["prenom"])."</h3>"; echo "<p>".utf8_encode($row["nom_marque"])."</p>"; echo "<p>".utf8_encode($row["description"])."</p>"; echo "<p>".utf8_encode($row["id_region"])."</p>"; echo "<a href=\"fiche_representant.php?rps=".$row["id_user"]."\" title=\"En savoir plus\">En Savoir Plus</a>"; echo "</div>"; } }je te suggère d'ajouter les messages quand la recherche ne retourne rien:
ou
comme cela tu sauras ce que fais ton code.