Vous n'êtes pas identifié(e).
Bonjour à tous & toutes
Je travaille sur un formulaire avec Bootstrap.
Avc le formulaire les utilisateurs peuvent tapper un ou plusieurs mot-clé.
//voilà mon formulaire
<div class="container">
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" name="motCle" class="form-control" placeholder="Rechercher">
</div>
<button type="submit" class="btn btn-default">Envoyer</button>
</form>
</div>
Admettons que l'utlisateur rentre "soucis logiciel"
Pour ma requête je voudrait faire une requête du genre
SELECT id, nom, solution
FROM problemes
WHERE (nom LIKE '%soucis%' or solution LIKE '%soucis%')
AND (nom LIKE '%logiciel%' or solution LIKE '%logiciel%')
Je pense que je dois recupéere les différents mots séparemment mais je ne sais pas comment m'y prendre.
Pouvez-vous m'aider s'il vous plaît ?
Merci d'avance.
Hors ligne
Saluton,
En première analyse je te dirigerais vers les fonctions PHP explode() ou split().
Mais je pressens des difficultés à venir liées à la non-unicité et non universalité potentielles de l'espace comme caractère de séparation et aux articles et autres conjonctions de coordination.
En effet, commet traiteras-tu, par exemple : "soucis de logiciel"
@mike
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour Maljuna Kris
je vais essayer avec les fonctions PHP explode() ou split().
Je vous tiens au courant
Merci et @+
Hors ligne
Bonjour
j'ai réussi à faire ce que je voulais.
Je mets ci-dessous la solution
<?php
//ici je récupère les variables envoyées par un formulaire
// utilisation de trim pour enlever les espaces inutiles qui risqueraient de poser problèmes
$idcategorie = trim($_GET["idcategorie"]);
$motcle = trim($_GET["motcle"]);
// aucun mot clé => affichage de tous les résultats
if ($motcle == "") {
$sqlCount = " SELECT count(id_probleme)
FROM problemes
WHERE id_categorie = $idcategorie ";
$sqlDetail = " SELECT id_probleme, id_categorie, nom, solution
FROM problemes
WHERE id_categorie = $idcategorie";
//je recupère les différents mots entrer dans la variable motcle
} else { // mot clé saisi => recherche
$arrMotcle = explode(" ",$motcle);
$strMotCle = ""; $separateur = "";
foreach ($arrMotcle as $itemMotcle) {
$strMotCle = $strMotCle . $separateur . " nom LIKE \"%".$itemMotcle."%\" OR solution LIKE \"%".$itemMotcle."%\" ";
$separateur = " OR ";
}
// .utf8_decode pour prendre en compte les accents du motcle
$sqlDetail = " SELECT id_probleme, id_categorie, nom, solution
FROM problemes
WHERE id_categorie = $idcategorie
AND (".utf8_decode($strMotCle).") ";
//die($sqlDetail);
}
?>
Hors ligne