Amigos,
he reportado el hilo para que los moderadores lo muevan al foro PHP.
Por eso mismo me atrevo a hacer una primera propuesta PHP, aclarando que es parcial, puesto que está pensada para controlar el número de columnas y líneas. Naturalmente si hay que trabajar con paginación, habrá que hacer más ajustes. Seguro que nuestros amigos del foro PHP lo mejorarán, pues no soy muy ducho con los arrays.
Código PHP:
<?php
$host="localhost";
$user="root";
$passwd="";
$db="base";
//Creamos la conexión
$link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);
$columnes =7; # Número de columnas (variable)
$filas = 8; #Número de filas por página (variable)
$ref=$columnes * $filas;
$Query = "select id, campo from tabla ORDER BY tabla LIMIT $ref";
$Res = mysql_query($Query);
echo "<table align=center>";
$i=0;
while ($dato=mysql_fetch_assoc($Res))
{
$resto=$i % $filas;//saco el resto de dividir el contador por el número de filas
$valor=str_pad($resto, 2, "0", STR_PAD_LEFT).'/'.$dato['campo'];//para luego poder ordenar el array como quiero, reúno en la variable, $resto, / y el campo.
$newarray[$dato['id']]=$valor; //asigno el valor al array y dejo el id como índice, por si quiero recuperarlo.
$i++;
}
natcasesort($newarray);//ordeno con case insensitive por la variable $valor, manteniendo la clave del array (ordena primero por resto y luego por palabra
$cont=1;
echo "<table>";
foreach ($newarray as $key => $val) {
$res=$cont%$columnes;//divido el contador por el número de columnas y saco el resto.
$data=explode("/", $val);//separo el valor del resto.
if ($res==1) {echo "<tr><td>".$data[1]."</td>";} elseif ($res==0) {echo "<td>".$data[1]."</td></tr>";} else {echo "<td>".$data[1]."</td>";}
$cont++;
}
echo "</table>";
?>
Pruébalo. He usado en parte la sintaxis de
SeNdEr2003