Foros del Web » Programando para Internet » PHP »

Mostrar resultados en columnas

Estas en el tema de Mostrar resultados en columnas en el foro de PHP en Foros del Web. Hola gente me tranque y agradeceria toda la ayuda posible gracias. Código PHP:    $a  =  1 ;    echo  "<center>" ;    while ( $a  <  $encontrados ) { ...
  #1 (permalink)  
Antiguo 09/09/2004, 13:48
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 21 años, 7 meses
Puntos: 3
Mostrar resultados en columnas

Hola gente me tranque y agradeceria toda la ayuda posible gracias.

Código PHP:
   $a 1;
   echo 
"<center>";
   while (
$a $encontrados) {
   echo(
"<table width=600>");
   echo(
"<tr>");
  

        
$j 0;
        while (
$j 4) {
            
// armo la tabla
        
$imag $imagen;
        
$desc $descripcion;
            echo(
"<td width=150 class=gal>");
            echo(
"<center>");
            if (
$a $j <= $encontrados) {
                echo(
"<font size='1' face='Verdana'>
                    <img border='1' bordercolor='#000099' src='$imag' width='80' height='80'><br>
                    <font color='#000099'><b>$desc</b></font><br>$selec_form</font><br><br>"
);
            }
            echo(
"</center>");
            echo(
"<td>");
            
$j += 1;
        }
    
$a += 2;
    echo(
"</tr>");
    echo(
"</table>");
    }

   echo 
"</center>"
Lo que busco es mostrar 4 articulos por cada linea de la tabla. como hacer???

Gracias
__________________
Saludos a Tod@s... :adios:

Última edición por Titos; 09/09/2004 a las 20:50
  #2 (permalink)  
Antiguo 09/09/2004, 14:01
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Mira esta FAQ:
http://www.forosdelweb.com/showthrea...669#post240669

Saludos
  #3 (permalink)  
Antiguo 09/09/2004, 20:41
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 21 años, 7 meses
Puntos: 3
Gracias pero

Gracias pero no me esta funcionando bien, osea distribuye bien las tablas pero muestra el resultado id=1 tantas veses como id alla, te pongo el còdigo a ver que estoy haciendo mal, me tiene cabezon

Código PHP:
  while ($r mysql_fetch_array($resultado))
     {
    
$id $r['id']; 
    
$imagen $r['imagen']; 
    
$descripcion $r['descripcion']; 
    
$selec_form 'Mas información';

    echo 
"<div align='center'><center><table width=600>";
    
$columnes 4
for (
$a=1$row mysql_fetch_row ($resultado); $a++) { 
$resto = ($a $columnes); # Número de celda del <tr> en que nos encontramos 
if ($resto == 1) {echo "<tr>";}
echo 
"<td><font size='1' face='Verdana'><img border='1' bordercolor='#000099' src='$imagen' width='80' height='80'><br><font color='#000099'><b>$descripcion</b></font><br>$selec_form</font><br><br></td>"
if (
$resto == 0) {echo "</tr>";} # Si es la última celda, cerramos </tr> 

if (
$resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos 
$ajust $columnes $resto# Número de huecos necesarios 
for ($j 0$j $ajust$j++) {echo "<td>&nbsp;</td>";} 
echo 
"</tr>"# Cerramos la última línea </tr> 



Gracias
__________________
Saludos a Tod@s... :adios:
  #4 (permalink)  
Antiguo 09/09/2004, 21:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
En realidad ya antes había escuchado decir a alguien que no le funcionaba ese código...
Acá te dejo otro que yo utilizaba y que me funcionaba bien... (creo)
Código PHP:
$columnas 5;//o las columnas que quieras
$final 0
echo 
"<table border=\"1\">"
for(
$i=1;$i<=$filas && $final==0;$i++){ 
    echo 
"<tr>"
    
$n 1
    while((
$n%($columnas+1)) != 0){ 
        echo 
"<td>";         
        if(
$row mysql_fetch_array($result)){ 
            echo 
$row["nombre"];//o lo que quieras escribir en la celda.
        
}else{ 
            echo 
"&nbsp"
            
$final 1
        } 
        echo 
"</td>";     
        
$n++; 
    } 
    echo 
"</tr>"


echo 
"</td></tr></table>"
Saludos
  #5 (permalink)  
Antiguo 10/09/2004, 08:16
Avatar de Titos  
Fecha de Ingreso: agosto-2002
Mensajes: 116
Antigüedad: 21 años, 7 meses
Puntos: 3
Gracias men ya me funciona pero tiene un pequeño pelin con $columnas osea estava como $filas pongo el código para que los demas lo tengan:

Código PHP:
$columnas 5;//o las columnas que quieras 
$final 0
echo 
"<table border=\"1\">"
for(
$i=1;$i<=$columnas && $final==0;$i++){ 
    echo 
"<tr>"
    
$n 1
    while((
$n%($columnas+1)) != 0){ 
        echo 
"<td>";          
        if(
$row mysql_fetch_array($result)){ 
            echo 
$row["nombre"];//o lo que quieras escribir en la celda. 
        
}else{ 
            echo 
"&nbsp"
            
$final 1
        } 
        echo 
"</td>";      
        
$n++; 
    } 
    echo 
"</tr>"


echo 
"</td></tr></table>"
Saludos y gracias
__________________
Saludos a Tod@s... :adios:
  #6 (permalink)  
Antiguo 10/09/2004, 17:45
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
mmm... no sé si funcionará bien así.
En realidad la variable $filas hace referencia al número de filas que tendrá la tabla (o sea la altura de la tabla)... tal vez en tu caso funcione porque se generan menos filas que columnas, pero no es el caso genérico.... lo que faltó fue definir esa variable al comienzo:
Código PHP:
$filas 7;//o las filas que quieras que tenga la tabla como máximo
$columnas 5;//o las columnas que quieras 
$final 0
echo 
"<table border=\"1\">"
for(
$i=1;$i<=$filas && $final==0;$i++){ 
    echo 
"<tr>"
    
$n 1
    while((
$n%($columnas+1)) != 0){ 
        echo 
"<td>";          
        if(
$row mysql_fetch_array($result)){ 
            echo 
$row["nombre"];//o lo que quieras escribir en la celda. 
        
}else{ 
            echo 
"&nbsp"
            
$final 1
        } 
        echo 
"</td>";      
        
$n++; 
    } 
    echo 
"</tr>"


echo 
"</td></tr></table>"
De esa manera se siguen generando filas mientras no hayamos llegado al máximo especificado ($i<=$filas) o mientras haya registros por leer en la consulta ($final==0)....
Como te dije, en tu caso ha funcionado por casualidad, pero debes hacer el cambio.
Claro que lo ideal es limitar la consulta a un máximo de $filas*$columnas números de resultados o utilizar un script de paginación para no hacer consultas muy extensas de las que sólo leamos una pequeña porción de los resultados.

Saludos
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 22:09.