IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Problème de syntaxe avec %


Sujet :

MySQL

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Points : 45
    Points
    45
    Par défaut Problème de syntaxe avec %
    Bonjour,

    je suis en train de faire un petit dictionnaire Français/Anglais, je demande à l'utilisateur d'entrer un mot puis il clique sur anglais s'il a entré un mot en français et inversement il clique sur francais s'il a entré un mot en anglais.
    Jusque là, mon code marche. Le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    	mysql_connect("localhost", "root", "");
    	mysql_select_db("site");
     
    	if(isset($_POST['bouton2'])) /*Si l'utilisateur entre un mot français et clique sur anglais (=bouton2)*/
    		{
    		$mot=htmlentities($_POST['entree'], ENT_QUOTES);
    		$req="SELECT Word, Nature FROM traduction WHERE Mot='$mot' ;";
    		$res=mysql_query($req) or die("Probleme de requete");
    		echo "En Anglais, ".$mot." se dit ".mysql_result($res,0,'Word')." (".mysql_result($res,0,'Nature').").";
    		}
     
    	elseif(isset($_POST['bouton1'])) /*Si l'utilisateur entre un mot anglais et clique sur francais (=bouton1)*/
    		{
    		$word=htmlentities($_POST['entree'], ENT_QUOTES);
    		$req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '$word';";
    		$res2=mysql_query($req2) or die("Probleme de requete2");
    		echo "En Français, ".$word." signifie ".mysql_result($res2,0,'Mot')." (".mysql_result($res2,0,'Nature').").";
    		}	
     
    	mysql_close();
    	?>
    Le probleme c'est que si l'utilisateur entre un verbe en anglais mais sans mettre 'to' devant (par ex 'make' au lieu de 'to make'), j'aimerais quand meme que la requete cherche dans la bdd et affiche 'En français, make signifie faire (verbe).'

    J'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word';";
    mais ça ne marche pas (j'ai essayé de mettre le % un peu partout, avec des doubles quotes au lieu de ' , en concaténant, mais rien n'a fonctionné...)

    Je ne vois plus trop comment faire !!!
    Alors si qelqu'un a une idée.....

    Merci d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Eclate la chaine à rechercher, et fait un LIKE pour chaque mot.

    D'ailleurs, to à mon goût devrait ne pas être pris en compte pour ta recherche, 2 lettres, c'est trop peu.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Points : 50
    Points
    50
    Par défaut
    je crois que tu as un point-virgule en trop là-dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word';";
    version corrigée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word'";

  4. #4
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par stargatefan
    je crois que tu as un point-virgule en trop là-dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word';";
    Exact!!!
    Finalement avec
    Citation Envoyé par stargatefan
    version corrigée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word'";
    ça a marché !

    Merci à vous deux

    a plus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de syntaxe avec fun
    Par sioul dans le forum Caml
    Réponses: 14
    Dernier message: 21/02/2007, 16h33
  2. [VB-Excel]problème de syntaxe avec Array
    Par DomBourti dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/07/2006, 21h30
  3. Problème de syntaxe avec des nombres
    Par baleiney dans le forum Langage
    Réponses: 7
    Dernier message: 09/07/2006, 10h48
  4. Problème de syntaxe avec le composant TCppWebBrowser
    Par Ptite Développeuse dans le forum C++Builder
    Réponses: 10
    Dernier message: 19/04/2006, 15h48
  5. problème de syntaxe avec champ date
    Par mussara dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 03/02/2006, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo