Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/06/2011, 20:39
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Sintaxis para mostrar resultados algo asi:

Hola,

Posiblemente podrías extraer el campo 'orden' y asignárselo como el índice de la celda de la tabla en la cual debe coincidir.

Código PHP:
<?php
$conn 
mysql_connect('127.0.0.1''root''PASSWORD');
mysql_select_db('juegos');

$ssql 'select nombre, orden from juegos order by orden';
$rsql mysql_query($ssql$conn);
$ares = Array();

while (
$val mysql_fetch_assoc($rsql)) {
    
$ares[$val['orden']] = $val['nombre'];
}

mysql_free_result($rsql);
mysql_close($conn);
?>
Con este método puedes crear un arreglo con todos los valores de la tabla para poder usarlos por su índice. Es decir el valor de $ares[1] va a ser el valor del campo nombre del orden 1.

Para poder acceder a ese arreglo sin que te ocurran errores de posición, puedes crear una función adicional que verifique eso.

Código PHP:
<?php
function pop($i) {
    global 
$ares;
    return isset(
$ares[$i]) ? $ares[$i] : '&nbsp';
}
?>
Y de esta forma puedes crear el HTML según lo que vayas necesitando.

Código PHP:
Ver original
  1. <table width="100%" border="0">
  2.   <tr>
  3.     <td>&nbsp;</td>
  4.     <td>&nbsp;</td>
  5.     <td>&nbsp;</td>
  6.     <td colspan="2"><?php echo pop(1); ?></td>
  7.     <td>&nbsp;</td>
  8.     <td>&nbsp;</td>
  9.     <td>&nbsp;</td>
  10.   </tr>
  11.   <?php if(count($ares) > 1) { ?>
  12.   <tr>
  13.     <td>&nbsp;</td>
  14.     <td>&nbsp;</td>
  15.     <td colspan="2"><?php echo pop(2); ?></td>
  16.     <td colspan="2"><?php echo pop(3); ?></td>
  17.     <td>&nbsp;</td>
  18.     <td>&nbsp;</td>
  19.   </tr>
  20.   <?php } ?>
  21. </table>

Un problema sería la inexistencia de una posición, sino existe el índice 2 porque se eliminó de la base de datos por algún motivo, la casilla aparecería vacía. Si quisieras que el programa re-ordenara los datos para que siempre se mantenga el orden original pero juntando las casillas vacías podrías cambiar esto:

Código PHP:
while ($val mysql_fetch_assoc($rsql)) {
    
$ares[] = $val['nombre'];

Donde se eliminó el índice.

Ahora el problema de no poder generar más fácilmente el HTML es la estructura del mismo, las casillas no coinciden, así que posiblemente lo quieras hacer con tablas o con divs, pero eso dependerá de la vista y como la quieras arreglar.

Por si quedó oculto en la complejidad del código, normalmente las secuencias se trabajan de forma cíclica, para no tener que hacer del 1 al 1000 usas ciclos, como por ejemplo:

Código PHP:
Ver original
  1. $i = 1;
  2.   while(count($ares) > $i) { ?>
  3.   <tr>
  4.     <td>&nbsp;</td>
  5.     <td>&nbsp;</td>
  6.     <td colspan="2"><?php echo pop($i++); ?></td>
  7.     <td colspan="2"><?php echo pop($i++); ?></td>
  8.     <td>&nbsp;</td>
  9.     <td>&nbsp;</td>
  10.   </tr>
Saludos,

ps:

Los índices seguramente no coinciden, es solamente un ejemplo para que te des una idea de como realizar el programa y calcular los mismos.

Última edición por HackmanC; 25/06/2011 a las 21:08 Razón: ps & edit