problème de requete

Eléphanteau du PHP | 20 Messages

02 oct. 2005, 22:44

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

ViPHP
pjl
ViPHP | 2119 Messages

02 oct. 2005, 22:47

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 oct. 2005, 22:51

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

02 oct. 2005, 23:16

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

02 oct. 2005, 23:19

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:

Mammouth du PHP | 19672 Messages

02 oct. 2005, 23:35

'me suis encore fait griller d'une minute par Cyrano... :evil:
Allez, la prochaine, je te laisse gagner :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

02 oct. 2005, 23:55

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' :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

03 oct. 2005, 00:21

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

03 oct. 2005, 00:38

Ben non, tu as posé la question, maintenant tu as la réponse, personne n'est perdant dans l'histoire :D
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 20 Messages

03 oct. 2005, 07:19

Parfait, merci à vous tous et à Albat pour la requête dont j'avais besoin.

Bonne semaine

Eléphanteau du PHP | 20 Messages

03 oct. 2005, 07:27

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:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

03 oct. 2005, 08:04

Normal que cela ne te retourne rien, puisque jeux contient jeu.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

03 oct. 2005, 08:09

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

Eléphanteau du PHP | 20 Messages

03 oct. 2005, 08:37

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?
Modifié en dernier par olivebcn le 03 oct. 2005, 10:00, modifié 1 fois.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

03 oct. 2005, 08:53

sais pas.
t'as cherché la réponse sur :google: ? :langue:

désolé