Modification de champs dans la base Mysql

Eléphanteau du PHP | 47 Messages

09 oct. 2012, 14:50

Bonjour,

J'ai plusieurs données à modifier dans ma base de donnée.
Si j'écris :
mysql_query("UPDATE ville_test SET prenom = 'Noël' WHERE prenom = 'No?L' ");
cela fonctionne.
Mais si c'est un prénom composé, cela ne fonctionne plus. J'ai essayé
mysql_query("UPDATE ville_test SET prenom = '%Noël%' WHERE prenom = '%No?L%'");

mais ça ne fonctionne pas. Et je dois donc incrire une ligne pour chaque prénom composé (Marie No?L , Jean No?L , Pierre No?L , .......).

Comment puis-je faire ?
Merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 oct. 2012, 15:26

Salut,

Dans le prédicat (where) utilise la clause like et non l'égalité.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 47 Messages

09 oct. 2012, 16:23

Merci Moogli, mais ça ne change rien ! :(
Si j'ai 5 prénoms No?L et 2 prénoms Jean-No?L, je voudrais faire une seule commande pour les modifier tous en Noël !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 oct. 2012, 16:31

et tu as fait quoi ?

sachant que tu ne peux pas remplacer comme ça à la volé une partie tel que tu l'a fait.

tu va devoir remplacer la partie foireuse par la bonne (l'équivalent de str_replace est le replaceen SQL)

il te faut modifier ta requête dans ce sens + le like


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 47 Messages

09 oct. 2012, 17:49

testé avec REPLACE :
mysql_query('UPDATE ville_test2 SET prenom = REPLACE (prenom,"%S?Bastien%","%Sébastien%") where prenom like "%S?Bastien%"');
Je n'ai eu aucun résultat, aucun message d'erreur !