Foros del Web » Programando para Internet » PHP »

Bucle While para crear Tabla con diferentes clases

Estas en el tema de Bucle While para crear Tabla con diferentes clases en el foro de PHP en Foros del Web. Hola gente, este es mi primer post y necesito de la ayuda de algun desarrollador php... Tengo un bucle; @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 30/07/2011, 16:39
Avatar de Gushh  
Fecha de Ingreso: julio-2009
Ubicación: Ituzaingó, Buenos Aires, Argentina
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Bucle While para crear Tabla con diferentes clases

Hola gente, este es mi primer post y necesito de la ayuda de algun desarrollador php...

Tengo un bucle;

Código PHP:
Ver original
  1. <?php
  2. $x = 0;
  3. $y = 0;
  4. echo "<table class=\"tabla\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">";
  5. while ( $x <= 9) {
  6.     echo "<tr>";
  7.     while ( $y <= 9) {
  8.         echo "<td id=\"box$x-$y,\"></td>";
  9.         $y++;
  10.     }
  11.     echo "</tr>";
  12. $x++;
  13. $y = 0;
  14. }
  15. echo "</table>";
  16. ?>

Lo que necesito es hacer que desde un archivo de texto lea las celdas a formatear y defina la clase...

Ejemplo del archivo.txt
Código:
0,0
1,5
9,9
Entonces al hacer el bucle se daria formato a la celda x=0 y=0, x=1 y=5, x=9 y=9

Espero que me puedan ayudar...

Acá les dejo el código de mi avance...
Código PHP:
Ver original
  1. <?php
  2. $x = 0;
  3. $y = 0;
  4. $archivo = 'nombres.txt';
  5. $fp = fopen($archivo,'r');
  6. $cadena = fread($fp, filesize($archivo));
  7. $arreglo = explode("\n", $cadena);
  8. echo $cadena;
  9. echo "<table id=\"forum\" class=\"tabla\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">";
  10. while ( $x <= 9) {
  11.     echo "<tr>";
  12.     while ( $y <= 9) {
  13.         foreach($arreglo as $linea) {      
  14.         $partes = explode(",", $linea);
  15.             if ($x == $partes[0] and $y == $partes[1]) {
  16.                 echo "<td id=\"box$x-$y,\" class=\"clase\"></td>";
  17.             } else {
  18.                 echo "<td id=\"box$x-$y,\"></td>";
  19.             }
  20.         $y++;
  21.         }
  22.     }
  23.     echo "</tr>";
  24. $x++;
  25. $y = 0;
  26. }
  27. echo "</table>";
  28. ?>

Última edición por Gushh; 30/07/2011 a las 16:43 Razón: mal editado
  #2 (permalink)  
Antiguo 30/07/2011, 22:42
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Bucle While para crear Tabla con diferentes clases

Así a simple vista no le veo lo malo. No tengo mi computador a mano donde podría probarlo, pero yo lo veo bien. Lo único que me extraña es la coma que hay luego del $y dentro del id del td.

Ahora, siendo más específico, ¿qué debería hacer? Supongo que tienes un archivo .css donde tienes algo como esto :

Código CSS:
Ver original
  1. #box5-7 {
  2.     /* ... */
  3. }

Pues aparte de la coma no veo nada más en tu código.

PD : Disculpa si no te respondo luego, como ya dije más arriba no tengo mi pc a mano, está en el técnico :(.

Saludos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 31/07/2011, 10:16
Avatar de Gushh  
Fecha de Ingreso: julio-2009
Ubicación: Ituzaingó, Buenos Aires, Argentina
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Bucle While para crear Tabla con diferentes clases

Cita:
Iniciado por spider_boy Ver Mensaje
Así a simple vista no le veo lo malo. No tengo mi computador a mano donde podría probarlo, pero yo lo veo bien. Lo único que me extraña es la coma que hay luego del $y dentro del id del td.

Ahora, siendo más específico, ¿qué debería hacer? Supongo que tienes un archivo .css donde tienes algo como esto :

Código CSS:
Ver original
  1. #box5-7 {
  2.     /* ... */
  3. }

Pues aparte de la coma no veo nada más en tu código.

PD : Disculpa si no te respondo luego, como ya dije más arriba no tengo mi pc a mano, está en el técnico :(.

Saludos.
En realidad el ID del <td> no tiene que ver con el archivo .css
Lo que debería hacer es:

Código:
SI  x=0 AND y=0 OR x=1 AND y=5 OR x=9 y=9
<td class="clase">
SINO
<td>
FIN
Mi .css es este
Código CSS:
Ver original
  1. .tabla {
  2.     height: auto;
  3.   width: auto;
  4.   border-width:1px;
  5.   border-style:dotted;
  6.  }
  7.  
  8.  .tabla td {
  9.     height: 10px;
  10.   width: 10px;
  11.     background: #d7edfc;
  12.  }
  13.  .tabla td:hover {
  14.     background: #2096e1;
  15.  }
  16.  
  17.  .tabla td.clase {
  18.     background: url('sold.png') #2096e1;
  19.  }
  #4 (permalink)  
Antiguo 31/07/2011, 14:31
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Bucle While para crear Tabla con diferentes clases

Entonces lo que haces debería estar bien. Para depurar, haz lo siguiente :

Código PHP:
Ver original
  1. foreach($arreglo as $linea) {      
  2.         $partes = explode(",", $linea);
  3.  
  4.          // Linea para depurar
  5.          echo $partes[0] . ' => ' . $partes[1] . '<br />';
  6.  
  7.             if ($x == $partes[0] and $y == $partes[1]) {
  8.                 echo "<td id=\"box$x-$y,\" class=\"clase\"></td>";
  9.             } else {
  10.                 echo "<td id=\"box$x-$y,\"></td>";
  11.             }

Así podrás ver que imprime en cada loop y así mismo verás si se cumple el if que está debajo.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: formatos, tabla
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:07.