Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/10/2013, 07:45
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Distribuir registros cronológicamente en columnas

Efectivamente, así como lo planteas, y recuerdo ya haber visto ese código, funciona muy bien.

Yo lo adapté para que funcione con DIV, ahora tendría que ver como adaptarlo a PDO.

Gracias, les comparto mi solución.

Código CSS:
Ver original
  1. <style type="text/css">
  2.  
  3. .izq{
  4.     width:300px;
  5.     float:left;
  6. }
  7.  
  8.  
  9.  
  10. .local{
  11.     font-family:Georgia, "Times New Roman", Times, serif;
  12.     color:#336699;
  13.     margin-bottom:5px;
  14. }
  15.  
  16. .dir{
  17.     font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
  18.     font-size:10px;
  19.     color:#666666;
  20.     margin-bottom:15px;
  21. }
  22.  
  23. </style>


Código PHP:
<?php

$sql
="SELECT * FROM puntos_ventas";
$res=mysql_query($sql$conn) ;




 
    
$columnes 2# Número de columnas (variable)
 
    
if (($rows=mysql_num_rows($res))==0) {
        echo 
"<div>No hay resultados en la BD.</div> ";
    } else {
        echo 
"<h2>$rows Resultados</h2>";
    }
    
$filas ceil($rows $columnes); # Obtener número de filas de acuerdo al número de resultados y columnas dadas.
    
$matriz = array(); # Matriz que guardará los resultados de la manera pedida, llenando primero las filas.
    
$i=1# Fila inicial.
    
$columActual 1# Columna Actual
    
while($row mysql_fetch_array ($res)){
        if( !isset(
$matriz[$i]) ) {
            
$matriz[$i] = array(); # Añadimos una nueva fila a la matriz.
        
}
        
        
$matriz[$i][$columActual] = $row# Añadimos el registro en la columna actual.
        
$i++; # Incrementamos fila
        
if($i $filas){ # Si ya pasamos el número de filas máximo procedemos a llenar la siguiente columna y empezar desde la primera fila 
            
$columActual $columActual+1;
            
$i 1;
        }
    }
    foreach(
$matriz as $fila){
        echo 
"<div class='izq'>";
        for(
$k=1$k<=$columnes;$k++){
            if(isset(
$fila[$k])){
                 
?>
                <div class="local"><?php echo  $fila[$k]['local'];?></div>
                <div class="dir"><?php echo  $fila[$k]['direccion'];?></div>
                
                <?php
            
}else{
                echo 
"<div>&nbsp;</div>";
            }
        }
        echo 
"</div>";
    }
    
mysql_close($conn);

?>
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...