• Viernes 3 de Mayo de 2024, 12:38

Autor Tema:  BUCLE for  (Leído 2698 veces)

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
BUCLE for
« en: Domingo 1 de Noviembre de 2009, 06:47 »
0
hola gente primera vez que entro al foro un husto en saludarlos.. traigo un consulta estoy comenzando en php y no comprendo mucho el tema bucles (while,do while,for)

espero me puedan dar una mano estoy tratando de hacer algo muy simple seguramente pero no me sale...

les paso un codigo

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<table width="40%" border="3">
<tr>
   <td align="center" width="50%"> numero
   </td>
   <td align="center"> dia
   </td>
</tr>
<?php
   for ($a=1;$a <= 7;$a++)
   echo $a; ?>
<tr>

   <td>
   </td>
   
</tr>
</table>

</body>
</html>


simplemente lo que quiero hacer es que en la columna NUMERO automaticamente cuando corra el codigo se agren 7 filas cada una con su respectivo numero adentro (1,2,3,4,5,6,,7)

me daran una mano y si se explica mejor gracias

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: BUCLE for
« Respuesta #1 en: Lunes 2 de Noviembre de 2009, 04:23 »
0
El problema es con las etiquetas HTML

Prueba de esta manera

Código: PHP
  1.  
  2. <html>
  3. <head>
  4. <title>Documento sin título</title>
  5. </head>
  6.  
  7. <body>
  8. <table width="40%" border="3">
  9. <tr>
  10. <td align="center" width="50%"> numero
  11. </td>
  12. <td align="center"> dia
  13. </td>
  14. </tr>
  15.   <?php
  16.     for ($a=1;$a <= 7;$a++){
  17.   ?>
  18.   <tr>
  19.       <td>
  20.         <?php
  21.           echo $a;
  22.         ?>
  23.       </td>
  24.       <td>
  25.          
  26.     </td>
  27.   </tr>
  28. <?php
  29. } ?>
  30. </table>
  31.  
  32. </body>
  33. </html>
  34.  

* Tambien se recomienda utilizar las etiquetas CODE para que se mas entendible tu codigo,


Bienvenido, Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: BUCLE for
« Respuesta #2 en: Lunes 2 de Noviembre de 2009, 14:13 »
0
mil gracias por la ayuda.. 10 puntos la verdad era lo que queria lograr, no sabes lo qu me rompi la cabeza para tratar de hacerlo y no pude... entonces por favor corregime si me equivoco lo importante para lo que queria que era el bucle for imprima los valores en diferentes filas... lo importante es cerrar la ultima llave de for al final de la etiqutas de las filas (HTML) ? te pregunto por que mas alla de que lo hiciste quiero comprenderlo bien. ahora lo que voy hacer es con esa misma tabla en la columna dia con un while quiero que aparescan los 7 dias de la sema escritos, eso voy a ver como me sale. cualquier cosa te pido una mano.

mil gracias.
saludos

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: BUCLE for
« Respuesta #3 en: Lunes 2 de Noviembre de 2009, 14:43 »
0
PERDON lo que te comente quiero hacer con los dias de la semana es usando SWITCH

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: BUCLE for
« Respuesta #4 en: Lunes 2 de Noviembre de 2009, 23:46 »
0
Bueno el asunto es el siguiente


Código: PHP
  1.  
  2. <?php
  3.        //Esto es codigo PHP
  4.       if (1==$opcion){
  5. ?>
  6.  
  7. <!-- Codigo HTML -->
  8. <h1>Opcion 1</h1>
  9.  
  10. <?php
  11.    // Cerramos la llave del if (es codigo php tambien)
  12.    }else{
  13. ?>
  14.  
  15.   <!-- Codigo HTML -->
  16.   <h2>Opcion Diferente a 1</h2>
  17.  
  18. <?php
  19.   } //Llave del Else
  20. ?>
  21.  
  22.  
  23.  

Lo que debes de hacer es cerrar el codigo php (?>) cuando vas a incrustar codigo HTML, si despues necesitas insertar PHP de nuevo, vuelves a abrir
<?php el codigo y asi sucesivamente

No se si eso responde tu duda


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: BUCLE for
« Respuesta #5 en: Martes 3 de Noviembre de 2009, 14:39 »
0
Muchas gracias Tanori por esa exiplicacion me aclaro un poco mas el tema no sabia ni imaginaba que se podia abrir un php para cerrar algon simbolo que quedo colgado del php anterior en el codigo... es eso lo que se hizo no?
Estoy contento ya qu con el SWITCH pude hacer que me muestre los dias de la semana en la columna de los dias... aca muestro como lo hice:


<html>
<head>
<title>Documento sin título</title>
</head>
 
<body>
<table width="40%" border="3">
<tr>
<td align="center" width="50%"> numero
</td>
<td align="center"> dia
</td>
</tr>
  <?php
    for ($a=1;$a <= 7;$a++){
  ?>
  <tr>
      <td>
        <?php
          echo $a;
        ?>
      </td>
      <td>
<?php
         switch ($a) {
            case 1:
                echo "lunes";
                break;
            case 2:
                echo "martes";
                break;
            case 3:
                echo "miercoles";
                break;
            case 4:
                echo "jueves";
                break;
            case 5:
                echo "viernes";
                break;
            case 6:
                echo "sabado";
                break;
            case 7:
                echo "domingo";
                break; }
           ?>
    </td>

  </tr>
<?php
} ?>
</table>
 
</body>
</html>



Ahora por favor pido otra ayuda con para este mismo ejercicio lo qu quiero hacer es hacer una variable de tipo vandera creo le llaman para que automaticamente con algun IF creo tendria que ser para qu se pinte selda por medio, es decir una celda si o otra no (de cualquier color gris, azul, verde no importa)
como podria hacer eso? desde ya agradesco muchisimo las ayudas hasta el momento realmente menos mal encontre este foro.

Saludos a todos.

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: BUCLE for
« Respuesta #6 en: Martes 3 de Noviembre de 2009, 15:25 »
0
Tienes 2 formas de hacerlo; una de ellas es con JQuery en Javascript, pero no compete a este foro:

1. Primero, defines 2 estilos. Puedes hacerlo adjuntando a la página un css (<link href="hoja_estilos.css" rel="stylesheet" type="text/css" />) o definiéndolos directamente en el <head> de la página con el tag <style>

Código: CSS
  1. .fila-par {
  2.   background-color: /* El color que necesites */
  3. }
  4.  
  5. .fila-impar {
  6.   background-color: /* El color que necesites distinto a fila_par */
  7. }
  8.  
  9.  

2. En vez del <tr> dentro del bucle for, pones:
Código: PHP
  1. <tr class="<?php echo ($a % 2) == 0 ? 'fila-par' : 'fila-impar' ?>">
  2.  

:suerte:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: BUCLE for
« Respuesta #7 en: Martes 3 de Noviembre de 2009, 16:23 »
0
Muchas gracias shadow.. sin duda que como me decis podria hacerlo pero la verdad no logre comprenderlo hace poco comence con PHP y disculpame pero no entendi tus opciones..

Cuento un poco como imagino podria hacerlo pero no lo se aplicar al codigo lo que pienso puede funcionar seria primero crear una variable simple arriba del for de valor 0 ($b=0) por ejemplo despues hacer un IF con la condicion de que cuando la varable $b sea igual a 0 que pinte la celda y si la variable cambie no va pintar la celda por que la condicion no se va cumplir entonces en alguna parte cambiale el valor a $b para qu eso pase entonces en una vuelta del bucle va pintar y en otra no, claro qu para lograr esto la variable $b despues tiene qu volver a valer 0 y despues otra vez nuevamente cambie y asi indefinidamente.

se podra de esta forma? creo para mi con mis pocos conocimientos mec seria mas facil entender.

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: BUCLE for
« Respuesta #8 en: Martes 3 de Noviembre de 2009, 17:23 »
0
Como te lo ha propuesto shadow_rev es completamente funcional y practico, de la manera en que lo quieres hacer, solo compruebas la variables si es un valor entonces hay que cambiarla por el otro valor el alternativo

Prueba de esta manera, y aun cuando seas principiante, poco a poco ve avanzando...

Código: PHP
  1. <html>
  2. <head>
  3. <title>Documento sin título</title>
  4. <style>
  5.  .fila-par {
  6.    background-color:#FFFFFF;
  7.  }
  8.  
  9.  .fila-impar {
  10.    background-color:#ECF3F7;
  11.  }
  12. </style>
  13.  
  14. </head>
  15.  
  16. <body>
  17. <table width="40%" border="3">
  18. <tr>
  19. <td align="center" width="50%"> numero
  20. </td>
  21. <td align="center"> dia
  22. </td>
  23. </tr>
  24. <?php
  25.  
  26. $colorFila ='fila-par';
  27.  
  28. for ($a=1;$a <= 7;$a++){
  29.  
  30. #=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  31. #         ALTERNAR COLORES                  #
  32. #=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  33.     if ('fila-impar'==$colorFila){
  34.       $colorFila='fila-par';
  35.     }else{
  36.       $colorFila ='fila-impar';
  37.     }
  38. #=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  39.  
  40. ?>
  41. <tr class='<?php echo $colorFila; ?>'>
  42. <td>
  43. <?php
  44. echo $a;
  45. ?>
  46. </td>
  47. <td>
  48. <?php
  49. switch ($a) {
  50. case 1:
  51. echo "lunes";
  52. break;
  53. case 2:
  54. echo "martes";
  55. break;
  56. case 3:
  57. echo "miercoles";
  58. break;
  59. case 4:
  60. echo "jueves";
  61. break;
  62. case 5:
  63. echo "viernes";
  64. break;
  65. case 6:
  66. echo "sabado";
  67. break;
  68. case 7:
  69. echo "domingo";
  70. break; }
  71. ?>
  72. </td>
  73.  
  74. </tr>
  75. <?php
  76. } ?>
  77. </table>
  78.  
  79. </body>
  80. </html>
  81.  
  82.  

Cuando publiques Codigo aqui en el foro, no te olvides de utilizar las etiquetas CODE es muy facil, solo escribes tu codigo lo seleccionas, y en la barra de herramientas del editor hay un cuadro desplegable que dice 'Code', solo selecciona el lenguaje y listo.

o

Directamente (sin el *)

[*code=php] 
       //Publicando Codigo PHP con resaltado de Sintaxis; en Solocodigo
       $variable='2';
 [/code ]



Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: BUCLE for
« Respuesta #9 en: Martes 3 de Noviembre de 2009, 20:23 »
0
Cita de: "cesand"
Muchas gracias shadow.. sin duda que como me decis podria hacerlo pero la verdad no logre comprenderlo hace poco comence con PHP y disculpame pero no entendi tus opciones..

Solo puse una sola, pero partida en 2 pasos :P

Lo explico paso a paso:

1. La definición de estilos es para cambiar el aspecto visual del HTML (las famosas hojas de estilo en cascada, o CSS); hasta alli no hay misterio, es HTML básico. Nada mas se definen 2 estilos que cambian el color de fondo a un elemento. Para aplicar ese estilo, nada mas es poner el atributo class="nombre-estilo" al elemento que lo necesita, en nuestro caso, la fila de la tabla.

2. Es lo mismo que puso F_Tanori (EDITO: es mas o menos lo mismo), solo que yo lo hice en una línea :P  perdón por eso. En el bucle for, declaras un contador $a, el cuál yo empleo también para determinar el color de la fila. Me preguntas como se hace ?? Sencillo, ($a % 2) es la operación módulo, que te retorna 0 o 1 dependiendo si $a es par o impar (o en otras palabras, si es múltiplo de 2 el resultado es 0, si no lo es el resultado es 1), y ($a % 2) == 0 ? 'fila-par' : 'fila-impar' es una operación con el operador ternario ?, si el primer término ($a % 2) == 0 es true, entonces el resultado es 'fila-par', de lo contrario el resultado es 'fila-impar'. Poniendo echo ($a % 2) == 0 ? 'fila-par' : 'fila-impar' lo que hago es imprimir fila-par si $a es par, o fila-impar si $a es impar, y como esa impresión se hace dentro del contenido del atributo class, el resultado en el navegador es <tr class="fila-par"> si $a es par, y <tr class="fila-impar"> si $a es impar.

Para documentarte un poco sobre HTML y CSS, visita http://www.w3schools.com, y para PHP, no hay nada mejor que su propio origen, http://www.php.net/manual/en (ambos están en inglés).

Espero haberte explicado bien, o por lo menos darte un buen dolor de cabeza :devil:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: BUCLE for
« Respuesta #10 en: Miércoles 4 de Noviembre de 2009, 05:21 »
0
muchas gracias por las respuestas compañeros y las ayuda.. como me esta gustando php me esta costando mucho pero me entusiasma, voy a tener encuenta todo lo que me van diciendo. a medida que valla aprendiendo lo ire aplicando, lo que tambien me esta pazando creo es que no entiendo a la perfeccion como trabaja el bucle.. ya que estame sera mucho pedirles a ustedes qu la tienen clara me pidan que yo haga algun ejercicio simple digamos bastante en el que ustedes crean me va ayudar a comprender un poco mas podra ser?

por ejemplo yo quise hacer solamente con un for la tabla del 2 y de pricipio la hice asi:

Código: PHP
  1.  
  2. for ($a=2;$a<=20;$a+2)
  3. echo $a;
  4.  
  5.  

para mi a primera vista eso me iva imprimir la tabla del 2 si en al for le estoy diciendo que si $a es menor o igual que 20 que valla sumandole 2 a la $a

pero despues descubri que el correcto es:

Código: PHP
  1.  
  2. for ($a=2;$a<=20;$a=$a+2)
  3. echo $a;
  4.  
  5.  


pero la verdad lo descubri por probar al azar lamentablemente.
desya mil gracias por todas las ayudas.

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: BUCLE for
« Respuesta #11 en: Miércoles 4 de Noviembre de 2009, 10:52 »
0
Pues vas bien, un buen ejemplo para empezar son las tablas de multiplicar...


El operador es += es decir ;

$a+=2;

equivale a:

$a=$a+2;

Código: PHP
  1.  for ($a=2;$a<=20;$a+=2)
  2.  echo $a.'<br />';
  3.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

cesand

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: BUCLE for
« Respuesta #12 en: Miércoles 4 de Noviembre de 2009, 20:15 »
0
Hola gente queria decirles qu el problema esta resuelto y agradecerles por sus ayudas.. voy a continuar participando y aprendiendo en el foro. queria mostrarles ahora finalmente que lo pude hacer me gustaria qu lo vean y me comenten qu les parece de esta forma, y si me quieren dan un consejo bienvenido sera.


Código: PHP
  1. <html>
  2. <head>
  3. <title>Documento sin título</title>
  4. </head>
  5.  
  6. <body>
  7. <table width="40%" border="3">
  8. <tr>
  9. <td align="center" width="50%"> numero
  10. </td>
  11. <td align="center"> dia
  12. </td>
  13. </tr>
  14. <?php
  15. $b=0;
  16. for ($a=1;$a<=7;$a++){
  17.  
  18.     if ($b == 0)
  19.     {
  20.     $color="#FFFFFF";
  21.     $b=1;
  22.     } else {
  23.     $color="#cccccc";
  24.     $b=0;
  25.     }
  26. ?>
  27. <tr bgcolor=<?php echo $color;  ?>
  28.         <td>
  29.         <?php
  30.         echo $a;
  31.         ?>
  32.         </td>
  33.         <td>
  34. <?php
  35. switch ($a) {
  36. case 1:
  37. echo "lunes";
  38. break;
  39. case 2:
  40. echo "martes";
  41. break;
  42. case 3:
  43. echo "miercoles";
  44. break;
  45. case 4:
  46. echo "jueves";
  47. break;
  48. case 5:
  49. echo "viernes";
  50. break;
  51. case 6:
  52. echo "sabado";
  53. break;
  54. case 7:
  55. echo "domingo";
  56. break; }
  57. ?>
  58.         </td>
  59.  
  60. </tr>
  61. <?php
  62. } ?>
  63. </table>
  64.  
  65. </body>
  66. </html>
  67.  
  68.