Requete SQL qui remplace des occurences précises (JPG ->j

Eléphanteau du PHP | 18 Messages

08 févr. 2006, 22:19

bonjour

Je travail sous mysql via phpMyadmin et php.
Mon site fonctionne bien mais j'ai manqué un peu de rigeur lors de la création de certains éléments figurant dans ma base de données en effet je suis débutant ...
Certains navigateurs n'aime pas les .JPG ou encore les è é dans les noms de fichiers ...
En gros, certains éléments graphiques de mon site comportant des accents ou des ( ) et - ne s'affichent pas.
J'aimerais savoir s'il est possible de faire une requete qui permettrai de pallier a ce problème.
Par contre, je ne connait pas trop la marche a suivre pour ce genre de requete.

Je dois donc remplacer toutes les occurences
de "é" par exemple

dans la table 'products'

pour les champs

Code : Tout sélectionner

products_image products_image_med products_image_lrg products_image_sm_1 products_image_xl_1 products_image_sm_2 products_image_xl_2 products_image_sm_3 products_image_xl_3 products_image_sm_4 products_image_xl_4 products_image_sm_5 products_image_xl_5 products_image_sm_6 products_image_xl_6
par exemple, remplacer

vélo.JPG
par
vélo.jpg dans tout les champs de la table products.

mais est ce qu'il est possible seulement de remplacer juste le caractère désiré et si oui comment, j'ai beau lire différents manuels sur la fonction replace, je ne trouve pas :(

est ce que quelqu'un pourrait me donner une piste ou m'aider a faire ma requete, je n'ai pas envi de foirer toute ma base, elle fait plus de 5Mo ...



D'avance, un grand merci.
PlEx :oops:

Mammouth du PHP | 19672 Messages

08 févr. 2006, 22:47

Il y a les éléments dans le tuto sur l'upload de fichier qui pourraientt te servir :
<?php
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
?>
à adapter à ton code pour renommer tes fichiers.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 18 Messages

08 févr. 2006, 23:03

merci pour ta réponse, mais je ne maitrise pas trop ce genre de fonctions :(
n'y a t il pas une solution avec mysql ?

Mammouth du PHP | 768 Messages

08 févr. 2006, 23:41

merci pour ta réponse, mais je ne maitrise pas trop ce genre de fonctions :(
n'y a t il pas une solution avec mysql ?

Code : Tout sélectionner

UPDATE nom_table SET nom_champ = REPLACE(nom_champ,'ancienMot','nouveauMot')
exemple:

Code : Tout sélectionner

UPDATE matable, SET monchamp = REPLACE(monchamp, 'é', 'e')
c'est une solution, dumoins je n'en connais pas d'autre (pour l'instant)
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphanteau du PHP | 18 Messages

21 févr. 2006, 10:11

merci MARIO :)
mais est ce que ca va juste remplacer les occurences de 'é' par un e ?

ou bien est ce que ca va tout remplacer ?

c'est a dire, j'ai

élec.jpg

est ce que ca va donner

elec.jpg
ou alors ... est ce que ca mettra juste un 'e' a la place du mot ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

21 févr. 2006, 10:50

la 2eme solution, ça va chercher les occurences dans les mots
élec.jpg :arrow: elec.jpg

Mais je te conseille de tester sur une copie de ta base au cas où ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 18 Messages

21 févr. 2006, 13:22

meric pour ta réponse Zeus :)

mais ce n'était qu'un exemple ...
en effet je n'ai surement qu'une seule occurence de élec ..
j'ai peut etre

elèc.jpg
élèc.jpg
élipor.jpg
hélene.jpg

et j'en passe ..

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

21 févr. 2006, 13:26

Tant que le champs sue tu modifies n'est pas la clé primaire de ta table, il n'y aura pas de problèmes
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 18 Messages

21 févr. 2006, 14:02

tu pourrais me donner la syntax pour ton idée s'il te plait zeus ? afib que je voit la facon de procéder

merci de ton aide

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

21 févr. 2006, 15:12

Elle t'es donnée par mario un peu plus haut

Il te suffit de modifier tout les champs que tu désir modifier dans la requete UPDATE et de faire une requete par caractère que tu veux modifier
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 18 Messages

21 févr. 2006, 15:22

merci bien,
Je voit ce que ca donne