Mi experiencia en esto de las páginas webs se limita solo al HTML y CSS, simplemente porque el tiempo que me deja la universidad para seguir aprendiendo es muy limitado, sin embargo, he conseguido sacar un poco de tiempo para decidirme aprender PHP, y creo que voy por buen camino, en menos de una semana ya he conseguido varios programitas en PHP, uno de los que me siento más orgulloso es el siguiente:
Lo que vamos a hacer en este programa PHP es crear una página “generaunatablaa.php” donde vamos a tener un formulario al cual le vamos a agregar dos números y nos va a generar una tabla de tantas filas como columnas el usuario coloque.
1- Variables
2- Envío y tratamiento de datos de formularios
3- If
4- Funciones
5- For
6- Echo
Vamos a insertar un formulario común y corriente con nuestro dreamweaver donde vamos a tener dos campos de texto y un botón de enviar.
Lo importante de nuestros formularios para poder usar su información en PHP es que definamos un name=” ” a cada campo del mismo, en este caso, mi formulario me ha quedado así:
1 2 3 4 5 6 7 8 9 | <form id="form1" name="form1" method="post" action="generaunatabla.php"> <p> <input type="text" name="filas" />Filas <br /> <input type="text" name="columnas" />Columnas <br /> <input type="submit" name="Submit" value="Enviar" /> </p> </form> |
Como dije anteriormente es importante dos cosas, uno, que definamos un name a cada campo de nuestro formulario, en este caso le coloque name=”filas” al campo que pide el numero de filas y name=”columnas” al campo que pide el numero de columnas y dos que definas en action, la pagina que va a leer los datos enviados, en este caso, el archivo generaunatabla.php.
Este archivo va a ser el que me lee la información del formulario y me genera la tabla, veamos entonces las posibles situaciones que pueden ocurrir cuando nuestro usuario ingrese valores en el formulario.
1- El Usuario ingresa letras en lugar de números
2- El Usuario ingresa un número negativo en el campo filas
3- El Usuario ingresa un número negativo en el campo columnas
4- El usuario ingresa valores correctos para ambos campos
Siempre debemos evaluar los diferentes casos que pueden ocurrir en el envío de datos, vamos a encontrarle solución a cada uno de ellos.
1- Para solucionar el primer caso (El usuario ingresa letras en lugar de números) no hace falta PHP, ya aquí en skyandstars tenemos un tutorial disponible para eliminar esa posibilidad: http://www.skyandstars.net/validar-formularios-en-dreamweaver/
El resto de los casos los vamos a solucionar con un poco de PHP, para ello abrimos una nueva página PHP en nuestro Dreamweaver y vamos a comenzar con lo siguiente:
Abrimos el indicador de PHP y luego vamos a eliminar la posibilidad de valores negativos en las filas, esto lo vamos a lograr con la sentencia de control “IF” cuya sintaxis es la siguiente:
1 2 3 4 | if (condicion) {bloque de instruccion} else {bloque de instruccion en caso falso} |
Lo que sucede es lo siguiente: en la parte que dice “condición” vamos a colocar por ejemplo que el valor de las filas sea negativo, en caso de que sea negativo se ejecuta lo que denominamos “bloque de instruccion” que debería ser un mensaje de alerta, en caso de que el numero sea positivo (es decir que la condición no se cumpla) muestra una tabla.
Así, para eliminar la posibilidad de números negativos en las filas, vamos a tener el siguiente código:
1 2 3 4 5 6 | <?php //eliminamos la posibilidad de filas negativas if ($_POST["filas"] < 0){ echo "Solo numeros positivos<br />"; echo "<a href=generaunatablaa.php>Volver</a>"; } |
De aquí te voy a explicar las siguientes líneas:
Línea 1: Es un comentario PHP de una sola línea, que se comienza con dos “Slash” seguidos, es importante que sepas que este tipo de comentarios es de una sola línea.
Línea 2: Primero que nada tenemos “$_POST["filas"]” que nos va a traer la variable “fila” que colocamos en el formulario en la primera pagina. Luego vemos lo siguiente “< 0" es decir estamos diciendo que si la variable fila es menor que cero ejecutamos la línea 3 y 4.
Línea 3 y 4: Son líneas que nos muestran unos determinados mensajes en caso de que el número sea negativo.
Ahora vamos a eliminar la posibilidad de las columnas negativas, para eso debemos (si pensamos en la lógica) crear otra sentencia de control if que nos haga algo parecido a la sentencia anterior, eso lo vamos a lograr con lo siguiente:
1 2 3 4 5 | //eliminamos la posibilidad de columnas negativas elseif ($_POST["columnas"] < 0){ echo "solo numeros positivos<br />"; echo "<a href=generaunatablaa.php>Volver</a>"; } |
Para entender lo que se quiere lograr con el “elseif” podemos usar un poco de traducción al español. Piensa en que la traducción de “if” al español es “si”, es decir la sentencia if trabaja así por ejemplo: “SI el perro es azul entonces es extraño, si no es azul entonces puede ser normal”. Ahora imaginemos la sentencia “elseif” cuya traducción al español puede ser “además si”, la misma trabaja CONJUNTAMENTE con IF, y extendiendo el ejemplo anterior, podemos tener: “SI el perro es azul entonces es extraño, si no es azul PERO ES anaranjado es muy feo, si no, entonces es normal”. Ahora vamos a escribirte lo que queremos hacer con el código de arriba “SI el numero de filas es negativo, muestro un mensaje de error, SI NO ES negativo PERO las columnas son negativas muestro un mensaje de error, si las columnas y las filas son positivas, ejecuto el código”.
Entonces hasta ahora tenemos lo siguiente en nuestro archivo
1 2 3 4 5 6 7 8 9 10 11 | <?php //eliminamos la posibilidad de filas negativas if ($_POST["filas"] < 0){ echo "Solo numeros positivos<br />"; echo "<a href=generaunatablaa.php>Volver</a>"; } //eliminamos la posibilidad de columnas negativas elseif ($_POST["columnas"] < 0){ echo "solo numeros positivos<br />"; echo "<a href=generaunatablaa.php>Volver</a>"; } |
Ahora todos los valores son validos, vamos con lo que de verdad nos genera la tabla, por supuesto dentro de las llaves correspondientes del else:
Primero creamos una función que va a depender de dos variables, en este caso nuestra función va a ser algo así:
1 2 3 | function MostrarTabla($limiteF, $limiteC) { } |
*Donde $limiteF y $limiteC van a ser los valores correspondientes al número de filas y el numero de columnas.
Debemos darnos cuenta que en la estructura HTML de una tabla la apertura y el cierre de la misma es independiente del numero de filas o de columnas, así podemos imprimir de una vez como dije antes, el cierre y la apertura de la tabla.
1 2 3 4 5 | function MostrarTabla($limiteF, $limiteC){ echo "<table width=0 border=1 cellspacing=0 cellpadding=0>";//Inicio la Tabla Comun //AQUI VAN LAS FILAS Y COLUMNAS echo "</table>";//Termino la tabla comun }//de la funcion |
*Nota que deje un comentario en la línea 3 que dice que ahí van a estar las filas y las columnas.
Ahora necesitamos de alguna herramienta en PHP que nos permita repetir las filas y las columnas un número determinado de veces, para eso vamos a usar la sentencia de control “FOR”. lo vamos a hacer de la siguiente manera:
1 2 3 4 5 6 7 8 9 10 | function MostrarTabla($limiteF, $limiteC){ echo "tabla de $limiteF Filas y $limiteC Columnas"; echo "<table width=0 border=1 cellspacing=0 cellpadding=0>";//Inicio la Tabla Comun for ($numerof = 1; $numerof <= $limiteF; $numerof++){ echo " <tr>\n";//inicio de la fila comun //Aqui van las columnas echo " </tr>\n";//fin de la fila comun }//del for para las filas echo "</table>";//Termino la tabla comun }//de la funcion |
La línea que dice for esta seguida de “$numerof = 1; $numerof <= $limiteF; $numerof++" que nos dice que lo que está entre los corchetes siguientes se va a repetir desde 1 hasta el "limiteF", en este caso lo que se va a repetir es el código HTML correspondiente a las filas.
Ahora necesitamos agregar otro for para repetir tantas columnas como sea el "limiteC", entonces nuestro código nos quedaría:
1 2 3 4 5 6 7 8 9 10 11 12 | function MostrarTabla($limiteF, $limiteC){ echo "tabla de $limiteF Filas y $limiteC Columnas"; echo "<table width=0 border=1 cellspacing=0 cellpadding=0>";//Inicio la Tabla Comun for ($numerof = 1; $numerof <= $limiteF; $numerof++){ echo " <tr>\n";//inicio de la fila comun for ($numeroc = 1; $numeroc <= $limiteC; $numeroc++){ echo " <td> </td>";//columnas }//del for para las columnas echo " </tr>\n";//fin de la fila comun }//del for para las filas echo "</table>";//Termino la tabla comun }//de la funcion |
*Siempre ayúdate con los comentarios para especificar que corchete termina que instruccion.
Finalmente llamamos a la funcion de la siguiente manera:
1 | MostrarTabla($_POST["filas"], $_POST["columnas"]); |
Así nuestros códigos finales quedan de la siguiente manera:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin título</title> </head> <body> <h1>Escribe el numero de Filas y el numero de Columnas para tu tabla</h1> <form id="form1" name="form1" method="post" action="generaunatabla.php"> <p> <input type="text" name="filas" />Filas <br /> <input type="text" name="columnas" />Columnas <br /> <input type="submit" name="Submit" value="Enviar" /> </p> </form> <p> </p> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin título</title> </head> <body> <?php //eliminamos la posibilidad de filas negativas if ($_POST["filas"] < 0){ echo "Solo numeros positivos<br />"; echo "<a href=generaunatablaa.php>Volver</a>"; } //eliminamos la posibilidad de columnas negativas elseif ($_POST["columnas"] < 0){ echo "solo numeros positivos<br />"; echo "<a href=generaunatablaa.php>Volver</a>"; } //si los numeros son correctos, generamos la tabla else { function MostrarTabla($limiteF, $limiteC){ echo "tabla de $limiteF Filas y $limiteC Columnas"; echo "<table width=0 border=1 cellspacing=0 cellpadding=0>";//Inicio la Tabla Comun for ($numerof = 1; $numerof <= $limiteF; $numerof++){ echo " <tr>\n";//inicio de la fila comun for ($numeroc = 1; $numeroc <= $limiteC; $numeroc++){ echo " <td> </td>";//columnas }//del for para las columnas echo " </tr>\n";//fin de la fila comun }//del for para las filas echo "</table>";//Termino la tabla comun }//de la funcion MostrarTabla($_POST["filas"], $_POST["columnas"]); }//del if ?> </body> </html> |
Mijael es el creador y editor de skyandstars.net donde publica guias y tutoriales sobre WordPress, Cutenews, PHP, HTML y mucho más. Acutalmente estudiante universitario.