Foros del Web » Programando para Internet » PHP »

[APORTE] Representación de datos con tablas

Estas en el tema de [APORTE] Representación de datos con tablas en el foro de PHP en Foros del Web. APORTE : Representación de datos con tablas -- No es complicado hacer y controlar estos "vectores", realmente debemos pensar en ellos como dimensiones... (según yo) ...
  #1 (permalink)  
Antiguo 25/08/2008, 23:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
[APORTE] Representación de datos con tablas

APORTE: Representación de datos con tablas

--

No es complicado hacer y controlar estos "vectores", realmente debemos pensar en ellos como dimensiones... (según yo)

Entonces, veremos como controlar esto... pero si, usando con tablas (regulares)

Nos valemos de dos ciclos anidados, bien... con imaginación se pueden hacer recursadores de arreglos para tablas super anidadas, etc...

recorremos el vector x uno a uno, mientras a su ves se ejecuta el ciclo del vector y por cada paso en el vector inicial

Código PHP:
<?php

// Primero, debemos ver nuestros elementos...

$columnas 4;
$filas 3// OK?

// luego, para facilitar esto usaremos dos for() anidados


echo '<table style="border: 1px inset" border="1">';

for (
$x 0$x $filas; ++$x)
{
  
  
// "vector" X
  
echo '<tr>';
  
  for (
$y 0$y $columnas; ++$y)
  {
     echo 
'<td>';

    
// rutinas....
    
echo "$x,$y";
    

     echo 
'</td>';
  }
  
// cerramos X
  
echo '</tr>';
}

echo 
'</table>';  


?>
La verdad, no se si este bien.... pero funciona, igual... si no se... bien

De echo, si funciona.... pero mira, vamos a ver otra manera que conozco... ya que esta, es un poco mas simple... o no se, mas bien... veamos

Aquí, usamos un contador para determinar cuantos elementos hay en total... el comienzo de este ciclo while()

Mientras tanto, se va haciendo un break lógico basado en la cantidad (x,y) de columnas y filas (respectivamente) sin afectar ni necesitar de mas variables...

En esta forma, seria coveniente crear un variable antes de empezar el ciclo para usarla de contador, así... tendríamos una variable interna que nos indique el numero de "elemento" mostrado por celda, ya que la variable inicial se resetea en cada ocasión de un cierre de fila...

Código PHP:
<?php
// En este modo, notamos que abrimos un <tr> inicial...
// ...que extraño no?
echo '<table style="border: 1px inset" border="1"><tr>';

$columnas 7;
$filas 4;

$inicial 0;
$total 32// total?


while ($inicial $total)
{
  echo 
'<td>';
  
  
// rutinas...
  
echo "$inicial,$filas";

 
  echo 
'</td>';

  
// break!
  
if (++$inicial == $columnas)
  {
        if (!(--
$filas))
      {
         break;
      }
      
   
// cerramos y continuamos...
    
echo '</tr><tr>';
    
$inicial=0// debemos resetear!!!
  
}
  
}

// cerramos ambos...
echo '</tr></table>';
?>
Cabe mencionar que el primer ejercicio, es para tablas regulares... no se, no me imagino mas....

.. pero, el segundo ejercicio es mas practico, pudiéndose aplicar.. incluso, en algún paginado bidimensional... (que no es mala idea) ¿que les parece?


(igual no me se expresar bien, disculpen si he orado mal)


--

Ejemplo: (enlace removido definitivamente, es mejor publicar directamente)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 05/09/2008 a las 21:41 Razón: bingo!
  #2 (permalink)  
Antiguo 26/08/2008, 22:48
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: [APORTE] Representación de datos con tablas

Excelente aporte pateketrueke como siempre.
No esperaba nada menos de ti.

Enseguida lo pruebo a ver que tal.
  #3 (permalink)  
Antiguo 27/10/2008, 22:06
 
Fecha de Ingreso: agosto-2006
Mensajes: 113
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: [APORTE] Representación de datos con tablas

No lo entiendo mucho soy nuevo en php y necesito rellenar una tabla de 2 columnas y n filas que se va a ir llenando a medida que mi base de datos crece y asi aumenta el numero de filas pero no el de columnas si pueden darme una mano , de ante mano muchas gracias.
  #4 (permalink)  
Antiguo 28/11/2008, 16:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: [APORTE] Representación de datos con tablas

haber quien puede hecharme una mano...

yo estoy intentando que en vez de poner el numero de filas, me muestre filas hasta que se acabe la tabla sql...

por ahora he conseguido que me las muestre en linea, las 3 primeras fotos ya que le pongo el numero de columnas, pero no consigo que me ponga mas filas.

os pongo el codigo y os ruego que por favor me digais como consigo repararlo... jeje

un saludo y muchisimas gracias por adelantado:

Cita:

<form id="form1" name="form1" method="POST" >
<table border="1" cellspacing="0" bordercolor="#9999CC">
<?
// Primero, debemos ver nuestros elementos...

// DENTRO DEL DO WHILE METEMOS UN FOR CON CONTADOR

$columnas = 3;

do {
?>

<tr>
<?

for ($y = 0; $y < $columnas; ++$y){ ?>
<td>
<div align="center">
<a href="<? echo $row[imagen_url]; ?>"><img src="<? echo $row[imagen_mini]; ?>" width="<?php echo $width_n; ?>" height="<?php echo $height_n; ?>" border="0"></a></div>
</td>
<? echo $y ;
$row = mysql_fetch_array($rs);
};

?>
</tr>
<?
} while ($row = mysql_fetch_array($rs))
?>
</table>
</form>
  #5 (permalink)  
Antiguo 28/11/2008, 18:33
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: [APORTE] Representación de datos con tablas

Buen aporte. Para dibujar datos tabulados personalmente uso divs (uso a veces tablas, pero verán que los divs son más prácticos).

Lo que hago es tener un contenedor de 500px (como ejemplo, pueden usar lo que quieran) y luego pondré dentro del mismo tantos divs quiera. El secreto es que pondré el width de los internos con la siguiente ecuación "contenedor/cantidad de columnas que quiero". Entonces, si mide 500 y quiero 5 columnas tendré un ancho de 100px en los divs internos. A esto le pondré un float:left y listo. A las papas con un ejemplo usando éstas medidas:

Código php:
Ver original
  1. <div style="width:500px"><!--Div Contenedor-->
  2. <?
  3. $totalCeldas = 20; #Dibujaré 20 items
  4. for( $i = -1; ++$i < $totalCeldas; ){ #Un simple for de 0 a 20 en este caso?>
  5.     <div style="width:100px; float:left; background-color:<?=hexaRand();?>">
  6.         <?=$i;?>
  7.     </div><!--Div Hijo -->
  8. <? }?>
  9. </div> <!--Div Contenedor-->
  10.  
  11.  
  12. <?
  13. /* Funcion que da un return de un heaxadecimal random*/
  14. function hexaRand(){
  15.     mt_srand((double)microtime()*999999);
  16.     $salida = ''; while(strlen($salida)<=5) $salida .= sprintf("%02X", mt_rand(0, 255));
  17.     return '#'.strtoupper($salida);
  18. }
  19. ?>

Hagan un copy&peaste y verán el resultado ;)

Espero le sea útil a varios y suerte.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 29/11/2008, 19:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: [APORTE] Representación de datos con tablas

Buen aporte pateketrueke. Aunque ya es de hace unos meses, no lo había visto, seguro que a alguno le resultará útil.

En cuanto a la opción propuesta por nicolaspar no sería correcta del todo si hablamos de semántica, ya que para mostrar datos tabulados lo más correcto sería usar las tablas como tales, usar <div>... causaría una divitis en la página .

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 30/11/2008, 09:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [APORTE] Representación de datos con tablas

la técnica de nicolaspar es buena... de echo, bueno en IE no va tan bien...

pero claro que es otra alternativa, genial!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 03/12/2008, 09:01
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: [APORTE] Representación de datos con tablas

Si David el Grande, todo depende de que se quiera mostrar, de todos modos siempre que puedo pasarle trabajo al browser lo hago, liberando a PHP. Ah, y lo de que "causaría una divitis en la página" es relativo a la cantidad de contenido, yo hablo de un paginado normal, ponele 4x5, 20 divs a una page no le hace nada de nada. Además lo que importa es la idea, en vez de divs se podrían usar ul/li o lo que fuera (cambiaría la lógica pero también sería más barato para PHP). De todas manera siempre digo que hay que ver donde se usa cada código, no todo aplica a todo.

pateketrueke...que no va tan bien en IE?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #9 (permalink)  
Antiguo 03/12/2008, 11:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [APORTE] Representación de datos con tablas

la técnica de "divitis" en IE 6 no me funciono .... bueno, igual faltan hacks .... en fin

he estado usando tu técnica en grids simples ... por ejemplo, para thumbnails, etc, se ve bien!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 03/12/2008, 11:49
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: [APORTE] Representación de datos con tablas

Tenés razón, y si te digo que es el comentario que está dentro de la iteración (<!--Div Hijo -->) me crees? si, yo tampoco creería semejante comentario, pero para ver que es verdad borralo y proba de nuevo y verás que se ve bien (testeado en un IE6 standalone), no le encuentro explicación alguna :S

Saludos.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #11 (permalink)  
Antiguo 05/12/2008, 11:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 67
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: [APORTE] Representación de datos con tablas

Cita:
Iniciado por nicolaspar Ver Mensaje
Tenés razón, y si te digo que es el comentario que está dentro de la iteración (<!--Div Hijo -->) me crees? si, yo tampoco creería semejante comentario, pero para ver que es verdad borralo y proba de nuevo y verás que se ve bien (testeado en un IE6 standalone), no le encuentro explicación alguna :S

Saludos.
hola nicolaspar

este codigo que mencinas donde tengo que ponerlo
necesito ordenar los registro de mi consulta que podria ser una tabla o un form
aka dejo mi codigo

Código PHP:
<?php
ob_start
();

include(
"../config.php"); 

// connect to the mysql server 
$link mysql_connect($server$db_user$db_pass
or die (
"Could not connect to mysql because ".mysql_error()); 

// select the database
mysql_select_db($database
or die (
"Could not select database because ".mysql_error()); 

$match "Select td_atencion.*, td_serv_real.*, td_maquina.*From (((td_histo inner join td_atencion on td_histo.ate_id=td_atencion.aten_id) inner join td_serv_real on td_histo.serv_id=td_serv_real.serv_id ) inner join td_maquina on td_histo.maq_id=td_maquina.maq_id) where td_maquina.maq_serie ='".$_POST['maq']."';";


$qry mysql_query($match
or die (
"Could not match data because ".mysql_error()); 

while (
$row mysql_fetch_array($qryMYSQL_ASSOC)) {
    
printf("Nº de Orden: %s  Fecha Ingreso: %s Fecha Entrega: %s Lugar de Reparacion: %s "$row["aten_id"], $row["aten_fecha"], $row["ate_fech_entre"], $row["ate_lugar"]);
    
    
printf("Sintoma de Ingreso: %s  Diagnostico: %s Servicio Realizado: %s Maquina Operativa: %s "$row["serv_sintom"], $row["serv_diag"], $row["serv_acci_ob"], $row["serv_estado"]);
}

$num_rows mysql_num_rows($qry); 

if (
$num_rows <= 0) { 
echo 
"Lo Sentimos la serie ingresada no esta registrada: <strong>".$_POST['maq']."</strong><br>"
echo 
"<a href=detalle_maquina.php>Por Favor Ingrese Serie Nuevamente!</a>"
exit;




ob_end_flush();
?>
mas menos son como 30 registro que quiero que se impriman en forma ordenada

saludos
  #12 (permalink)  
Antiguo 19/07/2009, 20:33
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: [APORTE] Representación de datos con tablas

Interesante pero creo que comenzando asi se adapta mejor a cualquier resultado de la cantidad total de celdas..

Código php:
Ver original
  1. function redondeoUP($val)
  2. {
  3.     $entero = round($val,0);
  4.     $residuo = $val&#37;2;
  5.         if ($residuo > 0)
  6.             {$agregado = 1;}
  7.         else
  8.             {$agregado = 0;}
  9.     $resultado = $entero + $agregado;
  10.     return $resultado;
  11. }
  12.  
  13.  
  14.  
  15. // En este modo, notamos que abrimos un <tr> inicial...
  16. // ...que extraño no?
  17. $inicial = 0;
  18. $total = 34;
  19. $columnas = 3;
  20. $filas = redondeoUP($total/$columnas);

Este cambio se me ocurrio como una solucion rapida por que requeria que se adaptara a la cantidad de resultados que podian venir de un query a mysql

Última edición por Pax-Man; 19/07/2009 a las 21:17
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:28.