Enlever toutes les fois où apparaissent 4 lettres dans une table - PHP - Programmation
Marsh Posté le 14-08-2003 à 16:09:34
la encore ...regex .... mais cette fois utilises les regex MySQL
Marsh Posté le 14-08-2003 à 16:11:55
simogeo a écrit : la encore ...regex .... mais cette fois utilises les regex MySQL |
tu pourrais m'en dire un peu plus ? merci
Marsh Posté le 14-08-2003 à 16:20:25
une énigme
ce que je vois pas c'est comment dire
renomme xxxYYYxxx en xxxxxxx
enfin y'a pas que ça que je vois pas mais c'est surtout ça qui me tracasse
Marsh Posté le 14-08-2003 à 16:20:46
Master_Jul a écrit : |
pas maintenant .. il faudrait que je me penche dessus ... pas le temps ... mais fait des recherches sur le net REGEX Mysql .....
l'idée c'est de faire un update dans ta table de tout les tuples dont les champs contiennent l'expression "_cpm" en la soutirant
Marsh Posté le 14-08-2003 à 16:32:40
UPDATE matable SET monchamp = REPLACE('monchamp','chaine_from','chaine_to')
ça doit passer ça non ?
Marsh Posté le 14-08-2003 à 17:11:06
Sh@rdar a écrit : UPDATE matable SET monchamp = REPLACE('monchamp','chaine_from','chaine_to') |
ça m'a mis monchamp dans toutes les lignes de ma table à la colonne monchamp
edit : pour 2 trema de trop en fait
UPDATE matable SET monchamp = REPLACE('monchamp','chaine_from','chaine_to')
maintenant ça marche ! merci beaucoup !
Marsh Posté le 14-08-2003 à 17:19:12
aie, je me heurte à un dernier problème, je dois changer le format de temps qui sont du type :
xx.xxx et qui doivent passer en xx.xx.xxx
exemple : 48.489 devient 00.48.489
il y a des cas plus compliqué du type 72.132 devient 01.10.123 mais ils peuvent être changé à la main, il n'y en a qu'une dizaine, pas comme les premier où il faudrait juste rajouter
00. devant chaque ligne, peut on utiliser un asterix ou équivalent ?
replace '*' en '00.*'
et encore je sais pas si ça marchera qqch du style
Marsh Posté le 14-08-2003 à 17:39:21
karamilo a écrit : en mysql ou en php ? |
n'importe, ça sera fait qu'une fois, si possible en SQL
Marsh Posté le 14-08-2003 à 17:42:57
fonction CONCAT() de mysql;
Marsh Posté le 14-08-2003 à 18:46:06
c'est plus compliqué que prévu
j'ai des fichiers en xx.xxx et d'autres en x.xxx
Marsh Posté le 14-08-2003 à 18:47:52
alors passes par du php, ca sera plus simple.
tu veux les transformer en quoi les x.xxx ( en 0x.xxx ? ) ?
Marsh Posté le 14-08-2003 à 18:50:41
karamilo a écrit : alors passes par du php, ca sera plus simple. |
les x.xxx deviennent 00.0x.xxx
d'un côté, s'ils avaient fait ça dès le début, je n'aurai pas tous ces problèmes, heureusement que karamilo est là
Marsh Posté le 14-08-2003 à 18:56:04
héhé
bon tu recup tes données en mysql.
Code :
|
l'option S, pour optimiser avec les "array".
Marsh Posté le 14-08-2003 à 19:23:33
Je suis désolé mais je ne sais pas comment faire pour me servir de ce bout de code, désolé de faire le boulet mais j'ai du mal.
J'essayais de faire un select, pis peut être une boucle, et encore ça m'inspire rien.
Marsh Posté le 14-08-2003 à 19:30:32
tu te connectes a la base
Code :
|
bon tu remplaces ce que tu veux.
si c'est trop long, tu decoupes avec un limit a la premiere req.
$i, c'est juste un compteur pour voir si tout est bon
mais testes avant sur une seule ligne car y'aura peut etre un probleme avec le preg, qu'il remplace ce qui vient deja d'etre remplace ( a => b => c au lieu de a => b tout court )
Marsh Posté le 14-08-2003 à 19:58:45
parse error sur l accolade qui ferme, l avant dernière
Marsh Posté le 14-08-2003 à 19:59:24
Master_Jul a écrit : parse error sur l accolade qui ferme, l avant dernière |
; putain
et par error apres aussi "";
Marsh Posté le 14-08-2003 à 20:02:33
simogeo a écrit : |
j'étais plus sûr qu'on devait metre un ; apres un $x++ il me semblait que j avais fait un script sans, sinon, j avais corrigé un autre petit oubli, essayons
Marsh Posté le 14-08-2003 à 20:04:01
Code :
|
Marsh Posté le 14-08-2003 à 20:10:11
simogeo a écrit :
|
oui, celle là j'ai réglé le pb, ça donne :
Code :
|
Le echo $newvar; renvoie 00.04.0 et le temps original à cette ligne est 4.960, le echo $i; reste muet lui.
Marsh Posté le 14-08-2003 à 20:18:33
Code :
|
fooootes
Code :
|
Marsh Posté le 14-08-2003 à 20:32:30
oula, que de fautes
dsl, je devais pas etre bien reveille
Marsh Posté le 14-08-2003 à 20:32:52
simogeo a écrit :
|
y'a pas un ; en trop là ?
Marsh Posté le 14-08-2003 à 20:35:11
pas forcément, les deux sont possibles et avec un ; c'est mieux.
Marsh Posté le 14-08-2003 à 20:44:21
karamilo a écrit : pas forcément, les deux sont possibles et avec un ; c'est mieux. |
ok d'accord, sinon y'a toujours un problème avec ce que donne le $newvar, ça transforme
4.896 en 00.04.61
Marsh Posté le 14-08-2003 à 20:55:43
le problème pourrait pas venir de $1.$2 ? enfin je sais pas trop moi
Marsh Posté le 14-08-2003 à 21:12:59
Master_Jul a écrit : le problème pourrait pas venir de $1.$2 ? enfin je sais pas trop moi |
ta regex est pourrie .. j'ai pas envie de mettre le nez dedans .. je suis pas specialiste et en plus j'ai pas envide me prendre le chou ce soir
si ja'i bien compris
tu as des fichiers x.xxx et des xx.xxx
ca doit devenir doit devenir 00.0x.xxx ou des 00.xx.xxx
Code :
|
essayes ca
Marsh Posté le 14-08-2003 à 22:18:00
Merci simogeo, ça a marché, j'ai juste eu quelques accros sur des demos au format diférent ou déjà transformé mais rien de grave, j'ai corrigé à la main et tout est bon maintenant, encore merci pour tout, merci à karamilo et Sh@rdar qui m'ont permis de rendre le site à nouveau opérationnel. Bonne soirée et à la prochaine.
Marsh Posté le 15-08-2003 à 00:03:22
Sans passer par les expressions régulières, ni le PHP, en partant de cette requête, tu peux faire ce que tu cherches à faire :
select text, concat(left(text, INSTR(text,'pass')), right(text, LENGTH(text) - (INSTR(text,'pass') + 4))) |
Marsh Posté le 15-08-2003 à 00:05:14
MagicBuzz a écrit : Sans passer par les expressions régulières, ni le PHP, en partant de cette requête, tu peux faire ce que tu cherches à faire :
|
c'est d'abord ce que j'ai proposé ici .. mais il ne savait pas le faire
Marsh Posté le 14-08-2003 à 16:06:37
J'ai une table qui contient plusieurs champs où apparait "_cpm", c'est parfois attaché à quelque chose devant et derrière mais j'ai besoin juste de le supprimer pour qu'un string kikoo_cpm@hotmail.com deviennent kikoo@hotmail.com.
Je pense que si on connait la fonction adequate ça doit aller, je vois pas trop comment faire avec "rename", merci d'avance.
---------------
En français, on écrit "connexion", pas "connection".