Foros del Web » Programando para Internet » PHP »

¿Como se muestra un campo con mucho texto en 3 columnas?

Estas en el tema de ¿Como se muestra un campo con mucho texto en 3 columnas? en el foro de PHP en Foros del Web. Hola a todos! Estuve viendo algunos ejemplos de como mostrar el resultado de una consulta en columnas, pero viendo y probando este ejemplo, me di ...
  #1 (permalink)  
Antiguo 15/08/2008, 12:07
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Pregunta ¿Como se muestra un campo con mucho texto en 3 columnas?

Hola a todos! Estuve viendo algunos ejemplos de como mostrar el resultado de una consulta en columnas, pero viendo y probando este ejemplo, me di cuenta que efectivamente se puede repartir el resultado en columnas, pero el valor que se le agrega a la variable corta cualquier palabra.

http://www.forosdelweb.com/f18/repar...lumnas-238575/

Mi problema es que tengo un campo descripcion que tiene mucho texto y la idea sería saber si se puede repartir en 3 columnas y si me pueden dar un ejemplo, sin que las palabras se corten como en el ejemplo de arriba.

Desde ya muchas gracias. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 15/08/2008, 12:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

Puedes hacer algo parecido a ese mismo ejemplo, solo que buscar el carácter espacio más próximo a la "zona" de corte del texto para que no corte las palabras .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 15/08/2008, 14:04
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

Hola David! No entendí muy bien como hacerlo así como me dices, pero navegando encontré este código, lo probé y funcionó, solo que no me lo separa en columnas. Mira...

Código PHP:
                     <table width="100%">  
  
$numcolumnas 3;  
  
$consulta mysql_query("SELECT descripcion FROM restaurantes WHERE id_rubro = $idrubro");  
  
$total_resultados mysql_num_rows($consulta);  

  if (
$total_resultados >0) {  
  echo 
"<tr><td colspan=\"$numcolumnas\"></td></tr>";  
  
$i 1;  

  while(
$fila mysql_fetch_array($consulta)){  
  
$resto = ($i $numcolumnas);  

  if(
$resto == 1){ /*si es el primer elemento creamos una nueva fila*/  
  
echo "<tr>";  
  }
  
  echo 
"<td>".$fila['descripcion']."</td>";/*mostramos el valor del campo especificado*/  
 
  
if($resto == 0){/*cerramos la fila*/  
  
echo "</tr>";  
  }  
  
$i++;  
  }  

  if(
$resto != 0){/*Si en la última fila sobran columnas, creamos celdas vacías*/  
  
for ($j 0$j < ($numcolumnas $resto); $j++){  
  echo 
"<td></td>";  
  }  
  echo 
"</tr>";  
  }  
  }else{  
  echo 
"<tr><td>0 elementos encontrados</td></tr> ";  
  }  
  </
table
Me muestra la descripción pero todo de corrido, normal y no en columnas... ¿por que puede ser?

Gracias.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.

Última edición por marx-pola; 15/08/2008 a las 14:37
  #4 (permalink)  
Antiguo 20/08/2008, 05:46
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

No se puede poner en columnas, no?
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #5 (permalink)  
Antiguo 20/08/2008, 07:25
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

Con este código consigues lo que quieres, adaptalo a tus necesidades.

Código PHP:
<?php
$texto
=" sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd
sadfds dsafsdfda  dsaf adsaf asfdsf afsd fsad asfaf asdfadsfdfaf  adsf f asdf a f adfadsfd444"
;

$texto explode(" ",$texto); //cuentas las plabras que tiene el texto

$columna=intval(count($texto)/3); //lo divides en 3 (por ser 3 columnas) y obtienes un numero entero.
?>
<table border='1'>
<tr>
    <td>
        <?php
            
for($i=0;$i<=$columna;$i++) 
            {
                echo 
$texto[$i];
                
$fin=$i;
            }
        
?>    
    </td>
    <td>
        <?php 
            
for($i=$fin+1;$i<=($columna*2);$i++)
            {
                echo 
$texto[$i];
                
$fin=$i;
            }
        
?>  
    </td>
    <td>
        <?php
            
for($i=$fin+1;$i<=($columna*3)+1;$i++)
            {
                echo 
$texto[$i];
            }
        
?>  
    </td>
</tr>
</table>
  #6 (permalink)  
Antiguo 20/08/2008, 07:47
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

nx00... muy bueno el codigo que me enviaste y muchas gracias, pero tiene un solo problema y es que al momento de mostrarme los datos en la tabla, todas las palabras aparecen juntas, como que eliminó los espacios en blanco ó el espacio que separa las palabras. Lo demás funciona a la perfección.

¿Por que pasó esto? Gracias.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #7 (permalink)  
Antiguo 20/08/2008, 07:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

cierto....

al dividir la cadena con explode se eliminan los espacios. Pero lo puedes solucionar haciendo esto:

Código PHP:
echo $texto[$i]." "
en todos los bucles for
  #8 (permalink)  
Antiguo 20/08/2008, 08:11
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

Seeeeeeeeeeeee......... nx00... MILLONES DE GRACIAS, eres un grande

Ahora sí pude adaptarlo.

Gracias por todo amigo y saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #9 (permalink)  
Antiguo 20/08/2008, 08:31
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: ¿Como se muestra un campo con mucho texto en 3 columnas?

de nada.
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 14:40.