Ajouter un saut de ligne dans MySQL insérer dans le texte
est-ce que quelqu'un pourrait me dire comment ajouter une nouvelle ligne dans un texte que j'entre dans une table MySql?
j'ai essayé d'utiliser le 'n'
dans la ligne que j'ai entré avec INSERT INTO
déclaration mais 'n'
est indiqué comme il est.
en fait j'ai créé une table dans MS Access avec quelques 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 convertir, le 'n'
est ignoré et tout le texte est affiché en une seule ligne lorsque je l'affiche depuis une table MySql sur un formulaire PHP.
est-ce que quelqu'un peut me dire comment MySQL peut ajouter une nouvelle ligne dans un texte? En attente de réponse, merci!!
11 réponses
si vous êtes OK avec une commande SQL qui s'étend sur plusieurs lignes, alors oed's suggestion est la plus facile:
INSERT INTO mytable (myfield) VALUES ('hi this is some text
and this is a linefeed.
and another');
je viens d'avoir une situation où il était préférable d'avoir L'énoncé SQL sur une seule ligne, donc j'ai trouvé qu'une combinaison de CONCAT_WS()
et CHAR()
a fonctionné 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 actuelle, vous ajoutez juste une nouvelle ligne
INSERT INTO table (text) VALUES ('hi this is some text
and this is a linefeed.
and another');
pour info, je voulais ajouter des sauts de ligne dans les données existantes et j'ai eu \n
pour travailler ok...
les données de l'É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 les linebreaks juste très bien dans la plupart des cas, mais le problème est, vous avez besoin <br />
tags dans la chaîne de caractères réelle pour votre navigateur pour montrer les pauses. Puisque vous avez mentionné PHP, vous pouvez utiliser la fonction nl2br()
pour convertir un caractère de linebreak (" \n
") en étiquette HTML <br />
.
il suffit de l'utiliser comme ceci:
<?php
echo nl2br("Hello, World!\n I hate you so much");
?>
sortie ( en HTML ):
Hello, World!<br>I hate you so much
voici un lien vers le manuel: http://php.net/manual/en/function.nl2br.php
tout d'abord, si vous voulez qu'il s'affiche sur un formulaire PHP, le support est HTML et donc une nouvelle ligne sera rendue avec la balise <br />
. Vérifiez le HTML source de la page - vous pouvez éventuellement avoir la nouvelle ligne rendue juste comme une rupture de ligne, dans ce cas votre problème est simplement un de traduire le texte pour la sortie à un navigateur web.
-
vous devez remplacer
\n
par<br/>
avant d'insérer dans la base de données.$data = str_replace("\n", "<br/>", $data);
dans ce cas, dans la table de la base de données, vous verrez
<br/>
au lieu de la nouvelle ligne.p.ex.
First Line
Second Line
ressemblera à:
First Line<br/>Second Line
-
une autre façon de voir les données avec une nouvelle ligne. Lire d'abord les données de la base de données. Et ensuite remplacer
\n
par<br/>
par exemple:echo $data;
$data = str_replace("\n", "<br/>", $data);
echo "<br/><br/>" . $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 dans un ascii 13 pour la ligne de retour de chariot, le \n
equivilent. Mais comme @David M l'a déclaré, Vous êtes très probablement à la recherche D'avoir le HTML montrer cette pause et un br est ce qui fonctionnera.
il me semble que vous confondez le contenu de la table avec le rendu de ce contenu par un outil particulier.
je suppose que vous utilisez le client de ligne de commande (shell), l'invite mysql
à la fois pour entrer et pour afficher le texte dans cette colonne. Je devine également que vous êtes \n est stocké comme une nouvelle ligne et que c'est seulement la façon dont il est présenté qui est à l'origine de votre confusion.
essayez d'utiliser un outil GUI pour accéder votre de données MySQL.
vous pouvez simplement remplacer tous les \n
par <br/>
étiquette de sorte que lorsque la page est affichée puis il casse la ligne.
UPDATE table SET field = REPLACE(field, '\n', '<br/>')