Saut de ligne à intégré dans sql

Eléphant du PHP | 101 Messages

06 avr. 2009, 12:47

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.

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

06 avr. 2009, 13:59

En gros, tu cherches une fonction du genre de replace qui te permettrait de remplacer un "\n" par "\n\n" ? ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 101 Messages

06 avr. 2009, 15:47

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

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

06 avr. 2009, 16:26

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 ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 101 Messages

06 avr. 2009, 16:35

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

ViPHP
ViPHP | 5924 Messages

06 avr. 2009, 16:41

:oops:
Modifié en dernier par Sékiltoyai le 06 avr. 2009, 18:15, modifié 1 fois.

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

06 avr. 2009, 17:24

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')
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 5924 Messages

06 avr. 2009, 18:15

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

Eléphant du PHP | 101 Messages

06 avr. 2009, 18:22

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.?