Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

comparaison de chaine en SQL


july

Messages recommandés

Bonjour,

Cela fait une heure que je me prend la tête et que je ne trouve pas alors HELP!!!!

J'ai un formulaire bateau en html. Le gars saisi un nom, et grâce à une requête SQL, je lui affiche le resultat trouvé dans la BD.

exemple de ce que je veux :

il tape-->il obtient

"DE GAUDIN" --> "DE GAUDIN"

"DEGAUDIN" --> "DE GAUDIN"

"DEG"-->"DEGAS", "DEGOUT", "DE GAUDIN"

...

Bref le truc classique quoi!!!

L'espace me pose problème, alors si vous avez des idées...

 

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

bon ton truc semble ressembler à un moteur de recherche.

Alors voilà ton problème c qu'il faut créer un tableau si ton mot est composé.

Dans ton formulaire tu mets un imput text comme ci-dessous :

<input type=\"text\" name=\"q\" size=\"20\"  maxlength=\"100\">

Il faut bien sur mettre form method et le bouton d'envoi.

Ensuite dans ta page de résultat tu déclares la variable "q" qui renferme les mots clés comme ceci :

$w = search_split_query($q); //appel de la fonction search_split_query

Ensuite tu fais :

$sql =  "SELECT nom de tes champs FROM nom de ta table";
foreach($w as $word) {


  if($flag) {
           switch($bool) {
               case 'AND' :
                   $sql .= " AND ";
                   break;
               case 'OR' :
               default :
                   $sql .= " OR ";
                   break;
           }
       }
 
 $sql .= "(";
 $sql.= " nom du champ LIKE '$word'";
 $sql.= ")";

 

Et en dessous tu mets la fonction suivante qui te permettra de gérer les mots composés :

 

function search_split_query($q) {
   if (!isset($q)) {
       return;
   }
   $w = array();
   $stripped = pnVarPrepForStore($q);
   $qwords = explode(' ', $stripped);
   foreach($qwords as $word) {
       $w[] = '%' . $word . '%';
   }
   return $w;
}

Et voilà j'espère que ca marchera ainsi :P

Modifié par Makeu_X
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...