mysql - texto - salto de linea textarea php
Agregar un salto de lĂnea en MySQL INSERT INTO text (11)
¿Podría alguien decirme cómo agregar una nueva línea en un texto que ingresé en una tabla MySql?
Intenté usar ''/n''
en la línea que ingresé con la INSERT INTO
pero ''/n''
se muestra tal como está.
En realidad, he creado una tabla en MS Access con algunos datos. MS Access agrega una nueva línea con ''/n''
. Estoy convirtiendo los datos de la tabla de MS Access en MySql. Pero cuando convierto, el ''/n''
se ignora y todo el texto se muestra en una sola línea cuando lo visualizo desde la tabla MySql en un formulario PHP.
¿Alguien puede decirme cómo MySQL puede agregar una nueva línea en un texto? En espera de respuesta, gracias !!
Tienes que reemplazar
/n
con<br/>
antes de insertarlo en la base de datos.$data = str_replace("/n", "<br/>", $data);
En este caso, en la tabla de la base de datos, verá
<br/>
lugar de una línea nueva.p.ej
First Line
Second Line
se vera como:
First Line<br/>Second Line
Otra forma de ver los datos con una nueva línea. Primero lee los datos de la base de datos. Y luego reemplace
/n
con<br/>
por ejemplo:echo $data;
$data = str_replace("/n", "<br/>", $data);
echo "<br/><br/>" . $data;
salida:
First Line Second Line
First Line
Second Line
Encontrará detalles sobre la función str_replace () aquí: http://php.net/manual/en/function.str-replace.php
En SQL o MySQL, puede usar las funciones char
o chr
para ingresar un ASCII 13 para el retorno de línea de retorno de carro, el /n
equivalente. Pero como ha dicho @David M, lo más probable es que el HTML lo muestre y un br es lo que funcionará.
En primer lugar, si desea que se muestre en un formulario PHP, el medio es HTML, por lo que se representará una nueva línea con la etiqueta <br />
. Verifique el código fuente HTML de la página; es posible que la nueva línea se represente solo como un salto de línea, en cuyo caso su problema es simplemente traducir el texto para enviarlo a un navegador web.
Me parece que confundes el contenido de la tabla con la representación de esos contenidos en una herramienta en particular.
Supongo que está utilizando el cliente de línea de comandos (shell), el indicador mysql
tanto para ingresar como para mostrar el texto en esta columna. También estoy adivinando que usted está / n está siendo almacenado como una nueva línea y que es solo la forma en que se presenta lo que está causando su confusión.
Intente usar una herramienta de GUI para acceder a sus datos de MySQL.
MySQL puede registrar saltos de línea muy bien en la mayoría de los casos, pero el problema es que necesita <br />
etiquetas en la cadena real para que su navegador muestre las interrupciones. Como mencionó PHP, puede usar la función nl2br()
para convertir un carácter de salto de línea (" /n
") en la etiqueta HTML <br />
.
Solo úsalo así:
<?php
echo nl2br("Hello, World!/n I hate you so much");
?>
Salida ( en HTML ):
Hello, World!<br>I hate you so much
Aquí hay un enlace al manual: http://php.net/manual/en/function.nl2br.php
Para el registro, quería agregar algunos saltos de línea a los datos existentes y obtuve /n
para que funcione bien ...
Data de muestra:
Sentence. Sentence. Sentence
Yo si:
UPDATE table SET field = REPLACE(field, ''. '', ''./r/n'')
Sin embargo, también funcionó con just /r
y just /n
.
Si está de acuerdo con un comando SQL que se extiende a través de múltiples líneas, entonces oedo''s sugerencia oedo''s es la más fácil:
INSERT INTO mytable (myfield) VALUES (''hi this is some text
and this is a linefeed.
and another'');
Acabo de tener una situación en la que era preferible tener la declaración SQL en una línea, así que descubrí que una combinación de CONCAT_WS()
y CHAR()
me funcionaba.
INSERT INTO mytable (myfield) VALUES (CONCAT_WS(CHAR(10 using utf8), ''hi this is some text'', ''and this is a linefeed.'', ''and another''));
Simplemente puede reemplazar toda la etiqueta /n
por <br/>
para que cuando se muestre la página, la línea se rompa.
UPDATE table SET field = REPLACE(field, ''/n'', ''<br/>'')
en una consulta SQL real, solo agrega una nueva línea
INSERT INTO table (text) VALUES (''hi this is some text
and this is a linefeed.
and another'');
INSERT INTO myTable VALUES("First line/r/nSecond line/r/nThird line");
INSERT INTO test VALUES(''a line/nanother line'');
/n
simplemente funciona bien aquí