Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/05/2009, 12:24
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años
Puntos: 300
Respuesta: Mostrar datos en forma vertical, ayuda!

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 &#37; $filas;//saco el resto de dividir el contador por el número de filas
$valor=str_pad($resto2"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