PHP - como conservar los saltos de linea en base de datos

 
Vista:

como conservar los saltos de linea en base de datos

Publicado por jordi (18 intervenciones) el 12/06/2012 10:28:06
Hola a todos.
Tengo una web realizada en php y y alimentada por base de datos mysql.
en la pagina hay un formulario con varios campos de texto y un textarea donde los usuarios pueden hacer sus preguntas y estas se quedan reflejadas en la base de datos de forma que en otra pagina de la web, se pueden ver todas las preguntas y comentarios, pero el problema que tengo es que la base de datos me devuelve el texto todo seguido, no conserva los saltos de linea ni los puntos y aparte.
He encontrado este codigo en internet perteneciente a un textarea ¿puede servirme este codigo en mi pagina php?........ y en caso afirmativo ¿donde deberia incluirlo en la base de datos, en la pagina del formulario que envia los datos o en la pagina que los recibe?.......

data-val-regex-pattern="^(?!\w{41})(.|\n|\r)*$"

esto creo que es java script pero no estoy seguro.

Gracias por leerme y ojala y me deis una solucion gracias de nuevo.
Jordi
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como conservar los saltos de linea en base de datos

Publicado por xve (6935 intervenciones) el 12/06/2012 19:48:08
Hola Jordi, para ello, existe una instrucción en PHP que se llama nl2br() que hace exactamente lo que solicitas, pasar los saltos de linea del textarea a html (<br>)
http://php.net/manual/es/function.nl2br.php

Esta instrucción tienes que ponerla antes de guardar los datos en la base de datos...
1
$sql="INSERT INTO Tabla SET Campo='".nl2br($_POST["campoTextArea"])."', campos2=...";

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

como conservar los saltos de linea en base de datos

Publicado por Jordi (18 intervenciones) el 13/06/2012 20:21:17
Muchisimas gracias por tu respuesta, era eso justamente lo que necesitaba.
muchas gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como conservar los saltos de linea en base de datos

Publicado por jordi (18 intervenciones) el 14/06/2012 11:16:09
Hola xve.
Si ers eso exactamente lo que necesitaba pero ahora me asalta la duda de en que parte del codigo debo ponerlo del que te envio, en la primera sentencia SQL o en la segunga en los value string.
el problema me viene en los campos text area anuncio1 y anuncio2, los demas no hay problema porque son lines de texto solamente.
espero puedas responderme
te lo agradezco.


$insertSQL = sprintf("INSERT INTO paginas (socioid, nombre_comercial, fotografia, mapa, direccion, direccion2, direccion3, poblacionid, tel, fax, email, pag_socio, anuncio1, anuncio2) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",


GetSQLValueString($_POST['socioid'], "int"),
GetSQLValueString($_POST['nombre_comercial'], "text"),
GetSQLValueString($_POST['fotografia'], "text"),
GetSQLValueString($_POST['mapa'], "text"),
GetSQLValueString($_POST['direccion'], "text"),
GetSQLValueString($_POST['direccion2'], "text"),
GetSQLValueString($_POST['direccion3'], "text"),
GetSQLValueString($_POST['poblacionid'], "text"),
GetSQLValueString($_POST['tel'], "text"),
GetSQLValueString($_POST['fax'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['pag_socio'], "text"),
GetSQLValueString($_POST['anuncio1'], "text"),
GetSQLValueString($_POST['anuncio2'], "text"));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como conservar los saltos de linea en base de datos

Publicado por xve (6935 intervenciones) el 14/06/2012 11:50:27
tienes que modificar esta linea:
1
GetSQLValueString($_POST['anuncio1'], "text"),

para que quede así:
1
GetSQLValueString(nl2br($_POST['anuncio1']), "text"),
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como conservar los saltos de linea en base de datos

Publicado por jordi (18 intervenciones) el 15/06/2012 11:53:25
Muchas gracias de nuevo xve.
Gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como conservar los saltos de linea en base de datos

Publicado por JOSELUISH31970 (1 intervención) el 20/09/2016 03:03:59
Hola esa sentencia debe colocarse al momento de la impresion, se que este post es antiguo pero para los proximos lectores, la sentencia se utiliza al momento de imprimir los datos no antes de cargarlos a pa base de datos. ejemplo:
<?php echo nl2br($row_Recetas['Ingredientes']); ?> de esta manera se respetaran los saltos de linea que se dieron con la tecla enter al momento de cargar la informacion, Debemos tomar en cuenta que si no se dio un salto de linea al momento de cargar la info pues no pasara nada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como conservar los saltos de linea en base de datos

Publicado por Jesus Daniel (1 intervención) el 30/11/2012 20:05:09
Gracias por la ayuda, es mas sencillo viendo tu ejemplo...jjjj me fue de mucha ayuda...Saludos desde Tabasco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alvaro Doune

como conservar los saltos de linea en base de datos

Publicado por Alvaro Doune (11 intervenciones) el 09/07/2013 21:25:54
Hola, y como revertis esta funcion? Es decir tengo una pagina la trae todo el contenido de mi tabla y lo mete en un text area para que yo lo pueda modificar y actualizar, pero me aparecen los <br>

muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como conservar los saltos de linea en base de datos

Publicado por xve (6935 intervenciones) el 10/07/2013 08:44:21
Hola Alvaro, en la misma pagina del php hay varias funciones que puedes utilizar...
1
2
3
4
5
6
7
8
9
10
11
12
<?php
/**
 * Convert BR tags to nl
 *
 * @param string The string to convert
 * @return string The converted string
 */
function br2nl($string)
{
    return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string);
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alvaro Doune

como conservar los saltos de linea en base de datos

Publicado por Alvaro Doune (11 intervenciones) el 10/07/2013 14:17:32
Muchas gracias!

Igual les cuento x si a alguien mas le sirve que lo colucione asi:

en vez de guardar los <br /> en la base de tados que aparte de ocupar mas memoria tengo que revertirlos al momento de mostrarlos simplemente imprimo los <br> al momento de mostrar, es decir en el echo (nl2br($rs_consulta['texto']));


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como conservar los saltos de linea en base de datos

Publicado por xve (6935 intervenciones) el 10/07/2013 15:14:22
Hola Alvaro, en mi caso, lo hago al revés... normalmente se muestra mas veces los datos de la base de datos que no se editan, por eso prefiero guardar los datos en la base de datos con el salto de linea de html (<br />)...

No creo que influya mucho en el rendimiento si no tienes muchas visitas...

Gracias por comentarlo Alvaro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como conservar los saltos de linea en base de datos

Publicado por lobo (1 intervención) el 20/11/2014 05:56:51
Excelente Alvaro, con tu solución pude resolver mi dilema del salto de línea, sin necesidad de codificar o decodificar mi variable de $texto, Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como conservar los saltos de linea en base de datos

Publicado por granitor (1 intervención) el 10/06/2015 18:16:25
Usando la función replaceAll se sustituyen los saltos de línea por un caracter cualquiera. Yo uso "¶"

1
2
3
4
5
6
7
8
9
10
11
contenidoParaGuardarEnLaTabla =  replaceAll(contenidoParaGuardarEnLaTabla,"\n","¶");
contenidoParaMostrarEnTextArea = replaceAll(contenidoParaMostrarEnTextArea,,"¶","\n");
 
// *************
function replaceAll(text, tosearch, toreplace ) {
// *************
    while (text.toString().indexOf(tosearch) != -1) {
        text = text.toString().replace(tosearch,toreplace);
    }
    return text;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como conservar los saltos de linea en base de datos

Publicado por Yoandi (8 intervenciones) el 16/11/2019 18:23:04
Si alguien tiene el problema de que envía los datos capturados de la base de datos usando json con el objetivo de mostrarlo en una datatable o algo así y por tener saltos de linea esta da un error. Yo usé preg_replace("/[\r\n|\n|\r]+/", "<br>", $row['columna']) sustituye los saltos de linea por la etiqueta <br> de esta forma en la tabla se mostrará perfectamente. Espero que le sirva a alguien porque yo demore un rato en encontrar esta solución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar