limiter le nombre de caractères retournés par une requête ??

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : limiter le nombre de caractères retournés par une requête ??

limiter le nombre de caractères retournés par une requête ??

par t-dt-b » 09 sept. 2005, 13:53

je te remercie pr la réponse. Pour m'en sortir, j'ai fais un traitement en php sur les retours de la requête.
Je sais que ce n'est pas très joli joli, mais je ne peux pas changer la structure de la table...
C'eut été plus simple de ne mettre qu'une valeur par type, mais il faut faire avec.

t

par ouckileou » 09 sept. 2005, 11:30

et bien pourquoi pas comme ceci :

Code : Tout sélectionner

SELECT * FROM t_contacts WHERE MATCH (noms) AGAINST ('alain') AND MATCH (noms) AGAINST ('delon');
moi je ferais comme ça, avec un LIKE ça va être la galère

édition : je viens de réaliser, tu ne veux ramener que la partie du champ qui correspond ???
je ne crois pas que ce soit possible
A quoi correspondent ces noms ? quand tu stockes plusieurs valeurs dans un même champs, avec des séparateurs, tu peux généralement te dire qu'il ya aurait une meilleure manière de faire et beaucoup plus pratique

mais bon là pour ramener uniquement les parties du champs qui correspondent je ne vois pas
en SQL je ne vois pas trop comment tu pourrais récupérer seulement des parties, il faudrait voir du coté du PHP et des expressions régulières je pense

limiter le nombre de caractères retournés par une requête ??

par t-dt-b » 09 sept. 2005, 06:59

Je n'ai pas l'impression qu'un requête plein texte est adaptée. ça va retourner encore plus de réponse.

Donc je reformule ma demande.

J'ai une table (t_CONTACTS) qui contient, entre autres, un champ Noms contenant des noms séparés par |, ces noms peuvent contenir une particule au milieu, du genre 'alain de delon'.
Ex : "...|alain de delon|jean carmet|..."
Je voudrais qu'une recherche sur 'alain de delon' retourne 'alain de delon', facile!,
et également qu'une recherche sur 'alain delon' retourne 'alain de delon'.

Comment écrire ma requête pour avoir ces 2 résultats?

merci

par ouckileou » 08 sept. 2005, 15:12

l'opérateur LIKE c'est pour les recherches simples, à ta place je me tournerai vers les recherches plein texte :
http://dev.mysql.com/doc/mysql/fr/fulltext-search.html

jette un coup d'oeil là-dessus déjà, pour voir si ça t'aide ;)

limiter le nombre de caractères retournés par une requête ??

par t-dt-b » 08 sept. 2005, 15:08

Je m'explique

J'ai une table (t_CONTACTS) qui contient, entre autres, un champ Noms contenant des noms séparés par |, ces noms peuvent contenir une particule au milieu, du genre 'alain de delon'.
Je voudrais qu'une recherche sur 'alain de delon' retourne 'alain de delon', facile!,
et également qu'une recherche sur 'alain delon' retourne 'alain de delon'.

J'ai écrit ça :

$prenom = "alain";
$nom = "delon";

"SELECT * FROM t_CONTACTS WHERE Noms LIKE '%|".$prenom." %".$nom"|%' ";

ça fonctionne, sauf que si ma table contient '...|alain de delon|jean carmet|...", c ok pour les recherches alain delon ou alain de delon, mais aussi sur une recherche 'alain carmet'.

Y-a-t'il un moyen d'indiquer le nombre de caractères que peut couvrir le caractère joker %.

Merci, j'espère que je suis assez clair....

thierry