Foros del Web » Programando para Internet » PHP »

Salto de linea desde base de datos...

Estas en el tema de Salto de linea desde base de datos... en el foro de PHP en Foros del Web. Buenas tardes desde KamiYo: Aber... hoy vengo con un problemilla que la verdad nose ni como empezar a explica... veamos lo que sale... La cosa ...
  #1 (permalink)  
Antiguo 06/09/2003, 11:00
Avatar de ZaPo  
Fecha de Ingreso: junio-2003
Ubicación: KamiYoPlanet
Mensajes: 221
Antigüedad: 20 años, 10 meses
Puntos: 1
Salto de linea desde base de datos...

Buenas tardes desde KamiYo:

Aber... hoy vengo con un problemilla que la verdad nose ni como empezar a explica... veamos lo que sale...

La cosa es que en mi página tengo un pequeño libro de visitas echo en php el cual utiliza una base de datos mysql por detras. Para el que la quiera ver esta en:

--> http://www.kamiyoplanet.com/bisitak

Como no entendereis ni jota deciros que IDATZI LIBURUAN quiere decir escribir en el libro, jeje, y dandole hay entrariais al formulario para agregar vuetra opinión.

Volvamos al problema... La cosa es que el texto en cuestión lo metemos en la base de datos en un campo longtext. hasta aqui todo claro... EL problema aparece cuando intento meter un texto de varios parrafos con saltos de linea... La base de datos coge bien estos saltos de linea y los datos son guardados correctamente, pero al llamar la página php a la base de datos para enseñar todos los textos, los saltos de linea no son atendidos y me escribe todo el texto en el mismo parrafo. como puedo solucionar esto??

Aqui abajo os pongo como lo vuelco...

Código PHP:
while($row mysql_fetch_array($result))
{
  
printf("<tr><td><center>%s</center></td>",$row[izena]);
  
printf("<td>&nbsp;Noiz: %s </font>",$row[ordua]);
  
printf("<br><br><font color=white> %s <br><br></font>",$row[textua]);

El campo textua es el del texto...

Depues de tanta chapa... Como puedo hacer para que me muestre el texto con los saltos de linea que ya aparecen en la base de datos?

Si no es posible hacerlo, como lo hariais de otra manera??

Espero me haya explicado bien y gracias de antemano


Ayo!

Última edición por ZaPo; 06/09/2003 a las 11:02
  #2 (permalink)  
Antiguo 06/09/2003, 11:05
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
puedes hacerlo asi:

Código PHP:
  if(strlen($row[textua]) > 50) { 
   
$row[textua] = wordwrap($qry['rollo'],50,"<br>",1);    
}
  
$row[textua] = ereg_replace("\r\n","<br>",$row[textua]); 
espero que te sirva
  #3 (permalink)  
Antiguo 06/09/2003, 11:08
Avatar de ZaPo  
Fecha de Ingreso: junio-2003
Ubicación: KamiYoPlanet
Mensajes: 221
Antigüedad: 20 años, 10 meses
Puntos: 1
Joder, te ha dado tiempo a leertelo?

jeje, ahora lo pruebo y te digo, gracias!
  #4 (permalink)  
Antiguo 06/09/2003, 11:16
Avatar de ZaPo  
Fecha de Ingreso: junio-2003
Ubicación: KamiYoPlanet
Mensajes: 221
Antigüedad: 20 años, 10 meses
Puntos: 1
Perfekto! lo de rollo la verdad no me es necesario, que ellos decidan la largura de sus parrafos

Gracias Jordi1 !!


agur!
  #5 (permalink)  
Antiguo 06/09/2003, 13:23
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

No es necesario reinventar la rueda. En PHP existe una funcion para transformar los saltos de linea en los <br> de HTML: nl2br() (www.php.net/nl2br).

Saludos.

PD: Esto esta en las FAQs.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 06/09/2003, 13:31
Avatar de ZaPo  
Fecha de Ingreso: junio-2003
Ubicación: KamiYoPlanet
Mensajes: 221
Antigüedad: 20 años, 10 meses
Puntos: 1
jeje, Josemi recordandome que tengo que mirar las FAQs por vez incontable... pues mira, esta vez las FAQS no las mire, pero en la busqueda si, y no me aparecio nada, por lo cual ya creia que sería una pregunta nueva , pero como de costumbre me repito, jeje.

Beinga pues, gracias a los dos, que las dos soluciones estan de maravilla!


Agur!
  #7 (permalink)  
Antiguo 07/09/2003, 10:14
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
Bueno la verdad es qu ejosemi tinene razon nl2br() te cambia los saltos de linea en <br>, lo malo de esta funcion es que si un graciosillo pone 200 letras seguidas sin salto de linea te destroza la pagina , pues la funcion no actua, yo prefiero la funcion wordwrap() asi aseguras que no habra mas de 50 caraceres por linea,

Un saludo,
  #8 (permalink)  
Antiguo 07/09/2003, 10:47
Avatar de ZaPo  
Fecha de Ingreso: junio-2003
Ubicación: KamiYoPlanet
Mensajes: 221
Antigüedad: 20 años, 10 meses
Puntos: 1
mmmm, la verdad no habia pensado en ese problema... Y conociendo a la gente tan bromista que nos visita sería conveniente tomar esa precaución.

Gracias pues de nuevo Jordi1

Y otra cosa, no sería posible unir vuestras dos propuestas? esto es... utilizar el wordwrap() para que no nos metan filas interminables y nl2br() para pasar los saltos de linea a <br>, es liarla mas igual.... pero bueno, podría ser mas simple...


Agur!
  #9 (permalink)  
Antiguo 07/09/2003, 11:50
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
Bueno la verdad no le veria problema, no se imagino que es cada uno, yo normalmente utilizo para estos menesteres la solucion que te di arriba, y me funciona de maravilla.

pongo el wordwrap() para los graciosillos, bueno tb hay que tener en cuenta que corta las cadenas cada 50 caracteres, y luego el ereg_replace() por si hay alguien que fuerza el salto de carro para hacer parrafo por ejemplo.

aunque esto es cosa del programador como lo quiere hacer

ya sabes cada maestrillo con su librillo, jeje, y los aprendices como nosotros pos eso, a ir probando consejos de uno y de otro
y ir viendo lo que mejor nos conviene .

a ver si nos convertimos en maestrilo jejej

venga un saludo
  #10 (permalink)  
Antiguo 07/09/2003, 13:29
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bueno, lo del nl2br(9 solo lo poneia para sustituir el ereg_replace(), que en este caso me pare un malgasto de recursos. Porque esa funcion gasta mas recursos que str_replace() (que tambien la podrias haber usado) y que nl2br(). Pero claro, es gusto personal. Esto es lo que tiene la programacion. Le preguntas a 10 programadores y obtienes 34 soluciones validas.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 07/09/2003, 13:35
Avatar de ZaPo  
Fecha de Ingreso: junio-2003
Ubicación: KamiYoPlanet
Mensajes: 221
Antigüedad: 20 años, 10 meses
Puntos: 1
Pues si, es lo que tiene la programación y tambien lo bonito de ella...

Estan bien las dos soluciones, al final e utilizado un colax de las dos opciones, con parte de cada uno, jeje. Problema solucionado.

Gracias!


Agur!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:40.