Page 1 sur 2

problème de requete

Posté : 02 oct. 2005, 22:44
par olivebcn
Bonsoir,

J'ai un petit problème avec une requète.

mysql_query("SELECT lien,text from matable where text LIKE '%jeu%' ")

Je désire donc afficher tous les liens contenant le mot cle jeu, le problème étant que j'ai plusieurs liens de la sorte:
jeu.php - jeu_voiture.php etc.. et au pluriel jeux.php - jeux_voiture.php

Donc cette requète me permettra de sortir tous les liens ou figure le mot jeu, mais aussi le mot jeux au pluriel, comment puis-je faire apparaitre tous les liens qui traite de jeu, et non de jeux?

Merci et bon fin de week end

Posté : 02 oct. 2005, 22:47
par pjl
1. attention à poster dans le bon forum. Question base de données = forum base de données.
2. tu as besoin de 2 conditions : quelque chose que tu veux et quelque chose que tu ne veux pas ors ta reqête ne comporte qu'une seule condition.

Je te laisse continuer.

Posté : 02 oct. 2005, 22:51
par Truc
ta reqête ne comporte qu'une seule condition.
Je vois que ta pas voulu donner de solution...
mais je suis pas d'accord il ne manque rien au contraire il y a des choses en trop pour faire ce qu'il veut :wink:
pour ne pas en dire plus il y a 2 petites choses en trop

Posté : 02 oct. 2005, 23:16
par Cyrano
Je crois surtout que la solution dans ce cas passe par le REGEXP, ça existe aussi en SQL et ça permettrait un tri plus fin.
La requête pourrait alors ressembler à:
$sql = "SELECT lien, text FROM matable WHERE text REGEXP (.*jeu[\._]{1}.*)";
mysql_query($sql);
L'expression fait suivre immédiatement le mot "jeu"d'un point ou d'un trait de soulignement à l'exclusion de tout autre caractère puis ensuite seulement n'importe quelle suite de caractères et le tout pourrait être précédé de n'importe quelle suite de caractères..
Devrait isoler "jeu_voiture.php" ou "section_jeu.php" mais exclure jeux_voiture.php.

À tester :-k

Posté : 02 oct. 2005, 23:19
par albat
Ma suggestion :
$sql = "SELECT lien, text FROM matable WHERE text LIKE '%jeu%' AND text NOT LIKE '%jeux%'";
'me suis encore fait griller d'une minute par Cyrano... :evil:

Posté : 02 oct. 2005, 23:35
par Cyrano
'me suis encore fait griller d'une minute par Cyrano... :evil:
Allez, la prochaine, je te laisse gagner :langue:

Posté : 02 oct. 2005, 23:55
par Cyrano
Ben c'est pas con, mais il ne sortira pas un "jeu_voiture.php", il ne sortira QUE "jeu" si ça existe, et sans le joker "%", ça revient presque à faire = 'jeu' au lieu de LIKE 'jeu' :)

Posté : 03 oct. 2005, 00:21
par Truc
Ben c'est pas con, mais il ne sortira pas un "jeu_voiture.php", il ne sortira QUE "jeu" si ça existe, et sans le joker "%", ça revient presque à faire = 'jeu' au lieu de LIKE 'jeu' :)
d'ou le retrait de mon intervention (tardive) donc plus les neurones en plein régime :sleeping:

Posté : 03 oct. 2005, 00:38
par Cyrano
Ben non, tu as posé la question, maintenant tu as la réponse, personne n'est perdant dans l'histoire :D

Posté : 03 oct. 2005, 07:19
par olivebcn
Parfait, merci à vous tous et à Albat pour la requête dont j'avais besoin.

Bonne semaine

Posté : 03 oct. 2005, 07:27
par olivebcn
AH désolé, mais si je veux maintenant mettre juste les liens portant le mot jeux et non jeu?

$sql = "SELECT lien, text FROM matable WHERE text LIKE '%jeux%' AND text NOT LIKE '%jeu%'";

En mettant cette requète ainsi, cela ne m'affichera rien du tout.

:roll:

Posté : 03 oct. 2005, 08:04
par albat
Normal que cela ne te retourne rien, puisque jeux contient jeu.

Posté : 03 oct. 2005, 08:09
par albat
$sql = "SELECT lien, text FROM matable WHERE text LIKE '%jeux%'";

Posté : 03 oct. 2005, 08:37
par olivebcn
J'avais bien compris cela, comme la requète de jeux, mais comment fait donc Google pour faire une requète sur le mot jeu et non jeux ou vice versa?

Posté : 03 oct. 2005, 08:53
par albat
sais pas.
t'as cherché la réponse sur :google: ? :langue:

désolé