Page 1 sur 1

Saut de ligne à intégré dans sql

Posté : 06 avr. 2009, 12:47
par fersayn
Bonjour,

Dans ma base sql, j'ai un champ ou il y a cela:

Atorvastatine calcique trihydratée ... 10,85 mg
Quantité correspondant à atorvastatine ... 10,00 mg
Pour un comprimé pelliculé.

Je recherche une fonction genre replace ou autre qui me donnerait ça:

Atorvastatine calcique trihydratée ... 10,85 mg

Quantité correspondant à atorvastatine ... 10,00 mg

Pour un comprimé pelliculé.


étant donné qu'il y a des milliers d'entrée à la main, c'est un peu laborieux.

Merci de votre aide.

Posté : 06 avr. 2009, 13:59
par Ryle
En gros, tu cherches une fonction du genre de replace qui te permettrait de remplacer un "\n" par "\n\n" ? ;)

Posté : 06 avr. 2009, 15:47
par fersayn
oui, sauf que: le "\n" n'apparait pas dans le sql

remarque, je ne sais pas si ça marche quand meme..

Non, ça ne marche pas

Posté : 06 avr. 2009, 16:26
par Ryle
Le "\n" correspond à une nouvelle ligne. Le fait de doubler les retours à la ligne existant va produire un saut de ligne, comme dans ton exemple.

En revanche, il s'agit de nouvelles lignes dans ta base de données. Si tu les affiches dans une page html, elles n'apparaitront que dans le source, et il faut les remplacer ou y ajouter une balise "<br />" pour les voir à l'écran...

Qu'as tu essayé ? Comment vérifies tu le résultat ?

Posté : 06 avr. 2009, 16:35
par fersayn
J'ai essayé:

Code : Tout sélectionner

REPLACE (string_expression, \n, \n\n)
et

Code : Tout sélectionner

REPLACE ('string_expression', '\n', '\n\n')
.

Il me donne une erreur.

Je ne sais pas

Posté : 06 avr. 2009, 16:41
par Sékiltoyai
:oops:

Posté : 06 avr. 2009, 17:24
par Ryle
Je suis pas sur de voir le rapport avec les chaînes de caractères de php m'enfin bon...

La fonction replace de MySQL te permet de remplacer une chaine par une autre dans une 3ème. Il faut donc spécifier :
- le nom du champ dans lequel se trouve la chaine à modifier,
- la chaine recherchée,
- la chaine par laquelle tu veux la remplacer

Code : Tout sélectionner

SELECT REPLACE (ton_champ, '\n', '\n\n')
Tu peux à partir de là utilisé cette valeur pour mettre à jour ton champ :

Code : Tout sélectionner

UPDATE ta_table SET ton_champ = REPLACE (ton_champ, '\n', '\n\n')

Posté : 06 avr. 2009, 18:15
par Sékiltoyai
Je suis pas sur de voir le rapport avec les chaînes de caractères de php m'enfin bon...
Shit, j'ai rien dit :D

Posté : 06 avr. 2009, 18:22
par fersayn
Oui, ça fonctionne mieux tout de même comme ça.

Désolé, pour l'erreur REPLACE, un peu fatigué aujourd'hui.

Par contre, je n'arrive pas à comprendre que cela ne fonctionne pas dans toutes les entrées.

Bizarre.?