Quelqu’un pourrait-il me dire comment append une nouvelle ligne dans un texte que j’entre dans une table MySql?
J’ai essayé d’utiliser le '\n'
dans la ligne entrée avec l’ INSERT INTO
mais '\n'
est affiché tel quel.
En fait, j’ai créé une table dans MS Access avec certaines données. MS Access ajoute une nouvelle ligne avec '\n'
. Je convertis les données de la table MS Access en MySql. Mais quand je convertis, le '\n'
est ignoré et tout le texte est affiché sur une seule ligne quand je l’affiche depuis le tableau MySql sur un formulaire PHP.
Quelqu’un peut-il me dire comment MySQL peut append une nouvelle ligne dans un texte? En attente de réponse, merci !!
Si vous êtes d’accord avec une commande SQL qui se propage sur plusieurs lignes, la suggestion d’Oedo est la plus simple:
INSERT INTO mytable (myfield) VALUES ('hi this is some text and this is a linefeed. and another');
J’ai juste eu une situation où il était préférable d’avoir l’instruction SQL sur une seule ligne, donc j’ai trouvé qu’une combinaison de CONCAT_WS()
et de CHAR()
fonctionnait pour moi.
INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), 'hi this is some text', 'and this is a linefeed.', 'and another'));
dans une requête SQL réelle, il vous suffit d’append une nouvelle ligne
INSERT INTO table (text) VALUES ('hi this is some text and this is a linefeed. and another');
Pour la petite histoire, je voulais append des sauts de ligne dans les données existantes et j’ai obtenu \n
de fonctionner correctement …
Données d’échantillon:
Sentence. Sentence. Sentence
J’ai fait:
UPDATE table SET field = REPLACE(field, '. ', '.\r\n')
Cependant, il a également fonctionné avec juste \r
et juste \n
.
INSERT INTO test VALUES('a line\nanother line');
\n
fonctionne très bien ici
INSERT INTO myTable VALUES("First line\r\nSecond line\r\nThird line");
MySQL peut enregistrer des sauts de ligne très bien dans la plupart des cas, mais le problème est que vous avez besoin de
tags dans la chaîne réelle de votre navigateur pour afficher les sauts. Comme vous avez mentionné PHP, vous pouvez utiliser la fonction nl2br()
pour convertir un caractère de retour à la ligne (” \n
“) en balise HTML
.
Utilisez-le simplement comme ceci:
Sortie ( en HTML ):
Hello, World!
I hate you so much
Voici un lien vers le manuel: http://php.net/manual/en/function.nl2br.php
Tout d’abord, si vous souhaitez qu’il s’affiche sous forme PHP, le support est HTML et une nouvelle ligne sera rendue avec la balise
. Vérifiez le code HTML source de la page – la nouvelle ligne peut être simplement rendue comme un saut de ligne. Dans ce cas, votre problème consiste simplement à traduire le texte en sortie dans un navigateur Web.
Vous devez remplacer \n
avec
avant l’insertion dans la firebase database.
$data = str_replace("\n", "
", $data);
Dans ce cas, dans la table de firebase database, vous verrez
au lieu de la nouvelle ligne.
par exemple
First Line
Second Line
ressemblera:
First Line
Second Line
Une autre façon d’afficher les données avec une nouvelle ligne. Lisez d’abord les données de la firebase database. Et puis remplacez \n
par
ex:
echo $data;
$data = str_replace("\n", "
", $data);
echo "
" . $data;
sortie:
First Line Second Line
First Line
Second Line
Vous trouverez des détails sur la fonction str_replace () ici: http://php.net/manual/en/function.str-replace.php
En SQL ou MySQL, vous pouvez utiliser les fonctions char
ou chr
pour entrer un ASCII 13 pour le retour à la ligne, l’équivalent. Mais comme @David M l’a dit, vous cherchez probablement à ce que le code HTML montre cette pause et c’est ce qui fonctionnera.
Il me semble que vous confondez le contenu de la table avec un rendu particulier de ces contenus.
Je suppose que vous utilisez le client en ligne de commande (shell), l’invite mysql
la fois pour entrer et afficher le texte dans cette colonne. Je devine aussi que vous \ n est stocké en tant que nouvelle ligne et que c’est seulement la façon dont il est présenté qui cause votre confusion.
Essayez d’utiliser un outil graphique pour accéder à vos données MySQL.
Vous pouvez simplement remplacer tous les \n
avec
balise afin que lorsque la page est affichée, elle se casse la ligne.
UPDATE table SET field = REPLACE(field, '\n', '
')