PDA

Ver la Versión Completa : Problemas con salto de linea


cirilungol
15-01-2007, 14:07:29
Buenas a todos.

Tengo un pequeño problema con PHP y Mysql.

Cuando guardo un registro que contiene varios saltos de linea (para escribir varias lineas), me inserta otro mas osease que me hace algo parecido a esto:


Esto es una prueba.

Así que no le hagas caso


cuando tendría que ser de la siguiente manera:

Esto es una prueba.
Así que no le hagas caso


podríais ayudarme.

Gracias.

Ñuño Martínez
15-01-2007, 14:41:23
Tal vez sea mejor que pongas algo de código, para ver qué haces exactamente.

cirilungol
15-01-2007, 15:30:47
Es algo muy sencillo.

Me explicare. Desde un input pongo un texto como he explicado arriba.
le doy a guardar se hace un insert, pero cuando lo vuelvo a mostrar mediante una select, me ha añadido un salto de linea por cada (intro o Return) que le he hecho.

el ejemplo de antes

1Linea (pulso return)
2Linea


lo guardo y cuando lo devuelve me muestra

1Linea

2Linea


¿como puedo morstrarlo talcual lo he guardado?

Ñuño Martínez
15-01-2007, 16:54:17
Tal vez sea por que el control devuelve una cadena "\n\r" (salto de línea+retorno de carro), que es lo normal en Windows, y que tu base de datos o tu intérprete PHP lo interprete como dos saltos de línea seguidos "\n\n" (Los sistemas POSIX sólo necesitan un salto de línea "\n").

Es decir, tu introduces "Esto es una prueba.\n\rAsí que no le hagas caso" pero e PHP o MySQL entiende "Esto es una prueba.\n\nAsí que no le hagas caso" y, cuando haces la consulta, te devuelve "Esto es una prueba.\n\r\n\rAsí que no le hagas caso". O eso creo.

No sé si cambiando la configuración bien de PHP bien de MySQL podrá arreglarse, pero es lo único que se me ocurre.

¿En qué sistema operativo estás trabajando? ¿Y cual es el código fuente PHP que hace la consulta?

kayetano
15-01-2007, 18:52:09
Hola

Tal vez sea mejor que pongas algo de código, para ver qué haces exactamente.
Yo también pienso que deberías mostrar algo de código, al menos como guardas los datos.

También estoy de acuerdo con Ñuño en que, si lo haces todo bien, debe ser cosa de configuración relacionado con el juego de caracteres con el que trabaja PHP y/o MySQL.

cirilungol
15-01-2007, 19:54:48
Hola de nuevo.

Para insertar hago lo siguiente:


$result = mysql_query('insert into catalogo (cod_categoria,cod_linea,cag_tipo,cag_descripcion)
values('.$_POST["codCat"].','.$_POST["codLin"].',"'.$_POST["cagTipo"].'","'.$_POST["cagDesc"].'")');



y previamente lo cargo desde


<tr>
<td class="PythonFieldCaptionTD" valign="top">Descrip. *</td>
<td class="PythonDataTD"><textarea class="PythonTextarea" name="cagDesc" <? if ($accion=="M") echo 'value="'.html_entity_decode($cagDesc).'"'; ?> rows="10" cols="50"><? if ($accion=="M") echo html_entity_decode($cagDesc); ?></textarea>&nbsp;</td>
</tr>


despues creo un xml. con la consulta tipica


while($row=mysql_fetch_array($result)){
$salida.="\t<pic>\n";
$salida.="\t\t<mini>catalogos/images/mini/".html_entity_decode($row[fot_nombre])."</mini>\n";
$salida.="\t\t<image>catalogos/images/".html_entity_decode($row[fot_nombre])."</image>\n";
$salida.="\t\t<caption>".$row[fot_nombre]."</caption>\n";
$salida.="\t\t<caption>".html_entity_decode($row[cag_descripcion])."</caption>\n";
$salida.="\t</pic>\n";
}



pero he de añadir que $row[cag_descripcion] me devuelve las lineas con susodicha separación.

Me cuelgan de un arbol y no me muero del ansia.

gracias por contestar.

cirilungol
16-01-2007, 11:02:26
Voy a dar mas información, a ver si lo podemos sacar.

Creo un xml a partir de una consulta y el resultado en el xml es el siguiente


<caption>Tenemos 5 modelos a su disposición:
- Recta ch. de 35 c/base.
- Recta ch. con clip de 35 c/base.
- Obe intermat acodada base reg. De 35
- Superacodada ch. de 35 c/base.
- Acodada ch. de 35 c/base.</caption>


y cuando lo leo en el flash me sale con las lineas separadas, de la siguiente manera.


Tenemos 5 modelos a su disposición:

- Recta ch. de 35 c/base.

- Recta ch. con clip de 35 c/base.

- Obe intermat acodada base reg. De 35

- Superacodada ch. de 35 c/base.

- Acodada ch. de 35 c/base.


Espero que esto pueda ser mas aclarativo

kayetano
16-01-2007, 11:49:18
Hola

Entonces está claro que el problema es FLASH, lo que tienes que hacer ahora es buscar información sobre como trata FLASH el retorno de carro porque es posible que "\n\r" lo considere como dos retornos de carro.

kayetano
16-01-2007, 14:43:47
Hola de nuevo

Resulta que estoy intentando hacer un catálogo en CD utilizando XML y FLASH y me he encontrado con esto
System.useCodepage = true;
XML.prototype.ignoreWhite = true;

Con la primera línea le indicamos a Flash el sistema de códigos que debe emplear para no tener problemas con las tildes y otros caracteres especiales. En la segunda línea le indicamos que no interprete los saltos de línea de todos los futuros documentos XML como nodos vacíos.

Igual es la causa de tus problemas.

cirilungol
16-01-2007, 15:17:05
No se si he puesto esos codigos que me has mandado, en cuanto tenga el momento lo revisaré y te dire que tal me ha ido.


graicaso por tomarte las molestias de leer y contestar.


Saludos.