Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


probleme avec regsub
#1
Bonjour a tous,

Je reviens demander de l'aide car j'ai un petit soucis avec regsub.
J'ai dans ma base de donnée matériel, un colonne id, réf, articles, etc...
dans la colonne articles j'ai des données écrite comme ca : voici.un.nouvel.article ou aussi comme ca voici-un-nouvel-article

ma colonne est un varchar(255) la base de donnée est sous interclassement utf8_general_ci et moteur MyISAM.

J'espère avoir tout mis :)

ce que je cherche a faire :
- commande !search sous la forme : !search chaine_de_caracteres chaine_de_caracteres chaine_de_caracteres (bref plusieur nom)
- recherche dans la colonne articles les correspondances
- affichage sous forme de listes.

Ce qui me pose un problème:
La recherche avec la commande !search nouvel article n'abouti pas, il ne trouve rien. Par contre si je rentre !search voici.un.nouvel.article la il trouve une correspondance et me l'affiche.

Je pense que cela viens de la façon que j'ai d'avoir écrite le regsub.
--> regsub -all {\*} $arg {%} arg

merci pour vos réponses.

Nos...
#2
Comment se fait ta recherche, du moins quelle est la requête ?
Si tu fais:

Code:
select * from table where article='la chaine'
, il faut que tu doubles ta condition where de la manière suivante:

tcl
regsub -all {_} $arg {\.} expdot
regsub -all {_} $arg {\-} expdash
set where "(article='$expdot' or article='$expdash')"

Si tu fonctionnes avec un like (ce qui semble être le cas), utilises plutôt:

tcl
regsub -all {[\.\-]} $arg {_} arg

Note que j'utilise '_' plutôt que '%' car en mysql, il remplace un seul caractère alors que % remplace un ou plusieurs caractères.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#3
Bonjour,

alors pour mon select comme tu dis j'utilise un like,

SELECT reference, articles FROM db WHERE articles LIKE '%$args%' ORDER BY articles DESC LIMIT 5

Mais en faite j'ai abandonnée la solution du global et comme lorsque je faisais:

!search %chaine_de_carateres%chaine_de_carateres%

ça fonctionnait aussi, j'ai rajouter dans ma proc à la place de global:

set args [string map [list "*" "%" " " "%"] $arg]; (récupéré sur divers posts sur le net)

et maintenant ca fonctionne, mais je testerai avec ta solution :)...

Mon but est d'arriver à écrire mon code en moins de ligne possible :) mais beaucoup de chose au niveau du langage tcl n'est pas expliquer d'où une recherche très très longue pour finir par comprendre ce qu'il faut faire :)...

Merci pour ta réponse,

Nos...


Possibly Related Threads…
Thread Author Replies Views Last Post
  Problème avec Les poupées linkeuses zappeur78 22 5,413 31/03/2022, 16:52
Last Post: CrazyCat
  [Résolu] Problème avec le script autolog T3nS 2 3,195 06/12/2017, 16:08
Last Post: T3nS
  [Bug] Problème avec le script zurl.tcl T3nS 0 3,032 03/08/2017, 19:40
Last Post: T3nS
  [Bug] comment regsub altère l'encodage d'une chaîne de caractères MenzAgitat 6 6,131 27/02/2017, 02:01
Last Post: MenzAgitat
  [Résolu] Problème d'accents avec script TCL maison CC30 3 4,681 25/08/2016, 13:55
Last Post: Alucard`68
  [Résolu] Problème d'encodage avec rss-synd Naruto 24 13,543 18/05/2014, 21:16
Last Post: CrazyCat
  Problème avec Clams SaiTek 7 5,817 06/09/2013, 09:02
Last Post: SaiTek
  Problème d'accent avec shoutcast.tcl Naruto 8 6,672 05/08/2013, 15:17
Last Post: Naruto
  [Résolu] [Aide]Problème avec un tcl Naruto 6 5,875 17/07/2013, 20:56
Last Post: CrazyCat
  probleme avec mon script Nostromo1st 7 6,007 05/06/2013, 09:51
Last Post: Nostromo1st

Forum Jump:


Users browsing this thread: 1 Guest(s)