Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2007, 19h01   #1
Membre à l'essai
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 24
Points : 24
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 :
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 :
$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.
honeydew est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 19h06   #2
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
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.
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 20h31   #3
Futur Membre du Club
 
Inscription : mars 2006
Messages : 106
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 106
Points : 18
Points : 18
je crois que tu as un point-virgule en trop là-dedans :
Code :
$req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word';";
version corrigée :
Code :
$req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word'";
TheDoci est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 21h50   #4
Membre à l'essai
 
Inscription : juin 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 50
Points : 24
Points : 24
Citation:
Envoyé par stargatefan
je crois que tu as un point-virgule en trop là-dedans :
Code :
$req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word';";
Exact!!!
Finalement avec
Citation:
Envoyé par stargatefan
version corrigée :
Code :
$req2="SELECT Mot, Nature FROM traduction  WHERE Word LIKE '%$word'";
ça a marché !

Merci à vous deux

a plus
honeydew est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h04.


 
 
 
 
Partenaires

Hébergement Web