Foros del Web » Programando para Internet » PHP »

Como se crean saltos de linea en un resultado de la base de datos?

Estas en el tema de Como se crean saltos de linea en un resultado de la base de datos? en el foro de PHP en Foros del Web. El problema que tengo que me muestra todo un texto entero en un linea rompiendo el diseño de la web y siguiendo para la derecha ...
  #1 (permalink)  
Antiguo 30/04/2009, 19:21
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Como se crean saltos de linea en un resultado de la base de datos?

El problema que tengo que me muestra todo un texto entero en un linea rompiendo el diseño de la web y siguiendo para la derecha sin para :D. He buscado un monton pero solo salen cosas para limitar el texto mostrado, lo que quiero es que cada 60 caracteres haga un salto de linea y no se como hacerlo, el codigo de la consulta es el siguiente:

Código PHP:
<?php
session_start
();

include(
"../reg/config.php");

// armamos la consulta
$sqlQueryNot mysql_query("SELECT not_ID, titulo, texto, email, f_alta, imagen FROM noticias ORDER BY not_ID DESC"$db_link)
or die(
mysql_error());
// mostramos las noticias,
// otra vez usando un bucle while
while($rowNot mysql_fetch_array($sqlQueryNot)){
echo 
stripslashes($rowNot['titulo'])."<br/><br/>";
echo 
"Noticia enviada por: ".$rowNot['email']." Fecha: ".$rowNot['f_alta']."<br/><br/>";
echo 
nl2br(stripslashes($rowNot['texto']))." <a href=\"mas.php?not_id=".$rowNot['not_ID']."\" target=\"_blank\">Más...</a><br/><br/>";
echo 
"<img src=\"imagenes/".$rowNot['imagen']."\" width=\"120\" height=\"90\" alt=\"Descripcion\" /><br/>";
}
?>
Lo que necesito que haga los saltos de linea es el $rowNot['texto'].
  #2 (permalink)  
Antiguo 30/04/2009, 19:56
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

Hola en las bases de datos podes guardar html que lo reconocera como tal cuando levantes los datos por pantalla, tecnicamente guardando un <br/> funciona de todas formas hay una funcion que te reconoce los saltos de linea \n (enter) y los guarda en la base, adjunto el link

http://br2.php.net/nl2br

saludos
  #3 (permalink)  
Antiguo 30/04/2009, 20:00
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

Como haria eso si las noticias son insertadas desde un formulario por los usuarios?

El formulario es el siguiente:

Código PHP:
<?php
session_start
();

if(!isset(
$_SESSION["login"])){
header("location: ../usu/login.php");
}
$login=$_SESSION["login"];
$carpeta 'imagenes/';

// incluimos el archivo de conexion
include ('../reg/config.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_POST['titulo']) && $_POST['texto']){
// creamos las variables y les asignamos los valores a insertar
$titulo $_POST['titulo'];
$texto $_POST['texto'];
/* AddSlashes — Escapa una cadena insertando barras “\” */
$titulo=addslashes($titulo);
$texto=addslashes($texto);
//upload de imagen
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
            
move_uploaded_file($_FILES['fichero']['tmp_name'], $carpeta.$_FILES['fichero']['name']); // se coloca en su lugar final
        
}

// hacemos el INSERT en la BD
$sqlInsertNot mysql_query("INSERT INTO noticias
(titulo, texto, email, f_alta, imagen) VALUES ('$titulo', '$texto', '$login', NOW(), '"
.$_FILES['fichero']['name']."')",$db_link) or die(mysql_error());
// enviamos un mensaje de exito
echo "Noticia subida correctamente";
}else{
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
echo "Debe llenar todos los campos del formulario";
}
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- el formulario -->
<form name="noticia" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<p>
Título de la Noticia<br />
<input type="text" name="titulo" size="50" maxlength="60" /><br/>
Máximo 60 carácteres.
</p>
<p>
Texto de la Noticia<br />
<textarea name="texto" rows="10" cols="50"></textarea>
</p>

<p>Archivo:<br />
<input name="fichero" type="file" /></p>


<p>
<input type="submit" name="enviar" value="Enviar" />
</p>
</form>
  #4 (permalink)  
Antiguo 30/04/2009, 20:06
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

al campo de texto antes de guardarlo en la base de datos lo pasas por la funcion de esta forma

nl2br($_POST['texto']);

y automaticamente te guarda el texto con los \n colocados, por supuesto siempre va a depender que el usuario toque enter para pasar de una linea a la otra

saludos
  #5 (permalink)  
Antiguo 01/05/2009, 04:19
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

Pero entonces asi no me sirve ya que yo lo que quiero es que automaticamente cada 60 caracteres haga un salto de linea es que osino se me pasa el texto del recuadro.
Eso es posible?
  #6 (permalink)  
Antiguo 01/05/2009, 06:24
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

si eso es posible, primero tenes que hacer una funcion que cuente la cantidad de palabras y despues a partir de esa funcion decirle que cuando cuente 60 palabras agregue al final un <br/> esa seria la idea

saludos
  #7 (permalink)  
Antiguo 01/05/2009, 06:37
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

vale voy a buscar haber si encuentro alguna funcion para eso de contar palabras.
  #8 (permalink)  
Antiguo 01/05/2009, 07:53
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

No encuentro mucho al respecto , ¿Sabeis de algo que haga eso?
  #9 (permalink)  
Antiguo 01/05/2009, 07:54
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

si yo tengo una funcion hecha sobre eso, basicamente lo que hay que hacer es contar los espacios en blanco, pero yo la tengo hecha ahora la busco
  #10 (permalink)  
Antiguo 01/05/2009, 08:03
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

vale gracias. hay que habria que hacerle tonces que en vez de contar espacios en blanco cuente caracteres no?
  #11 (permalink)  
Antiguo 01/05/2009, 08:08
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

vi aqui esta la funcion que cuenta palabras

Código PHP:
function resumen($cadena$total) {
    
$result "";
    
$cadena ereg_replace(" +"" "$cadena); 
    
$texto explode(" "trim($cadena));
    
    
$salida array_slice($texto0$total);
    foreach (
$salida as $value) {
        
$result .= $value." ";
    }
    return 
$result;

esta funcion esta adaptada para que del total de una cadena te devuelva la cantidad de palabras que quieras, a partir de ahi ya lo podes modificar a tu gusto, basicamente recibe dos parametros la cadena y el total de palabras que queres que devuelva

saludos
  #12 (permalink)  
Antiguo 01/05/2009, 08:29
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

No tengo ni la menor idea de como modificarlo para que haga lo que pretendo..... ¿como he de hacerlo?
  #13 (permalink)  
Antiguo 01/05/2009, 08:34
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

No se porque en lugar de caracteres leo palabras estoy re mal jaja.
bueno en cuanto al problema yo te puedo hacer algo que cuente caracteres el tema en cuanto al diseño (y perdon que me meta) si contas caracteres es muy probable que te queden palabras cortadas a la mitad en todas las lineas eso no se si quedaria bien pero bueno ya es a gusto de cada uno

saludos
  #14 (permalink)  
Antiguo 01/05/2009, 08:39
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

jejeje esto es mas complicado de lo que parece porque adivinos tampoco vamos a ser no? como vamos a saber la noticia que van a meter cuantos caracteres, espacios,etc... van a tener? jejej, haber..... otra opcion puede ser.. un ejemplo: que el texto al llegar a 200pixeles de longitud se pase a otra linea...... asi si podria ser?
  #15 (permalink)  
Antiguo 01/05/2009, 08:45
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

jejeje lo facilito que me ha resultado la solucion... a la hora de mostrar el texto e añadido en la consulta una tabla con width y el maximo y de momento parece que funciona ya que se pasa el texto a la otra linea :D. Muchas gracias Adell +1 para ti ;)
  #16 (permalink)  
Antiguo 01/05/2009, 08:47
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

yo justamente estoy implementando un modulo de noticias para el trabajo y usamos el metodo de contar las palabras, si bien el largo es variable, uno se puede dar una idea de cuanto espacio ocupa; de hecho la razon por la que construi esta funcion es para el mismo modulo de noticias. de todas formas ando medio olvidado con el diseño, el div no limita el ancho del texto? creo que si, si no me falla mi memoria
  #17 (permalink)  
Antiguo 01/05/2009, 08:52
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

pues yo tengo en el div tambien puesto el ancho y no lo limitaba se pasaba de largo jejeje seria porque empezaba a cojer carrera y no podia parar :P yo lo que e hecho a sido eso dentro del div he puesto <table width="(el ancho)"><tr>(Resultado de consulta<td></td></tr></table> y de momento funciona... haber si dentro de un rato no vuelvo diciendo que no va bien jejejeje

Saludos
  #18 (permalink)  
Antiguo 01/05/2009, 08:53
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

si deberia funcionar porque la tabla si es limitada por el div, pero si no funciona me avisas y buscamos otra solucion

saludos
  #19 (permalink)  
Antiguo 01/05/2009, 08:59
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

si si ahora mismo va perfect, :D ya estamos en contacto ya que tamos haciendo lo mismo si necesitas algo y te puedo ayudar ya sabes donde estoy aunque no tenga todavia yo muchos conocimientos :D
  #20 (permalink)  
Antiguo 01/05/2009, 09:09
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

si estamos en contacto y la idea del foro es ir aprendiendo todos juntos yo tampoco soy un experto en esto pero es como todo de a poco uno va mejorando

saludos
  #21 (permalink)  
Antiguo 01/05/2009, 12:10
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Como se crean saltos de linea en un resultado de la base de datos?

wordwrap

http://www.php.net/manual/es/function.wordwrap.php
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 10:40.