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<style type="text/css">
.izq{
width:300px;
float:left;
}
.local{
font-family:Georgia, "Times New Roman", Times, serif;
color:#336699;
margin-bottom:5px;
}
.dir{
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
font-size:10px;
color:#666666;
margin-bottom:15px;
}
</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> </div>";
}
}
echo "</div>";
}
mysql_close($conn);
?>