En esta ocasión retomamos la serie de post destinados a mostrar como se construye de forma básica una tienda en linea desde cero, en esta ocasión toca el turno al modulo de altas de productos.
Comenzaremos con el encabezado de este modulo, en el que como podemos ver, en las lineas de la 1 a la 6, tenemos nuestro código que verifica que la sesión este creada y de no ser así nos redirecciona a la pagina principal.
En las lineas de la 7 a la 10, vemos que conectamos con la base de datos y hacemos una consulta en la cual extraemos de la tabla de categoría la clave y el nombre de todas las categorías de productos que hemos creado con el fin de ponerlas en una lista desplegable.
En la siguiente imagen podemos ver, que continuamos con la pagina y usamos la misma estructura de 3 capas en nuestra pagina que hemos usado en los otros módulos. En la linea 19 comenzamos una capa llamada «menú», en la que de momento solo tenemos un enlace a nuestro archivo de menú llamado menú.php, observe que al igual que en los otros claros usamos el «nofollow» para evitar que los navegadores registren estos enlaces.
En la line 23 tenemos la etiqueta form, en la que podemos ver que la información será enviada a 03guardar.PHP, pero si vemos incluye el atributo «enctype=multipart/form-data», la cual indica que el formulario esta en capacidad de enviar o adjuntar archivos que serán enviados en partes.
Para colocar un botón o cuadro para seleccionar un archivo que será enviado al servidor solo basta ver la linea 36, se trata de un input del tipo file.
En la linea 29 colocamos una etiqueta select, pero como deseamos llenar ese select con las categorías que tenemos en nuestra base de datos, en la linea 30 abrimos una etiqueta de php e insertamos un ciclo while que leerá los resultados obtenidos en la consulta de la linea 9 y los insertara en la pagina web con una instrucción echo que construirá las etiquetas option.
Ya solo para terminar con el archivo HTML mostraremos las ultimas lineas del archivo.
Ahora bien, este es solo el formulario que enviara los datos del producto junto con la imagen del mismo, al presionar el botón submit, ahora veremos el archivo 03guardar.php que recibirá los datos y los procesara.
En la linea 1 vemos el include que agrega la conexión a la base de datos, en la linea 2 creamos una variable en donde almacenamos la referencia a donde se almacenaran las imágenes, en la linea 3 concatenamos esa variable con el nombre del archivo que se envío al servidor.
Los archivos se almacenan en un arreglo llamado $_Files, el arreglo es en si, una matriz en donde las filas son los archivos que se envían y las columnas los datos del archivo, tal y como vemos a continuación.
Como podemos ver es un arreglo asociativo en donde la referencia de la matriz se hace a través del nombre del input file, que en este caso le colocamos de nombre «archivo», para poder extraer el nombre del archivo del arreglo $_file usamos la instrucción basename, que concatenamos con el nombre de la carpeta donde se almacenaran, esto es lo que almacenáramos en nuestra base de datos, pero lo haremos hasta que el archivo haya subido.
En la linea 5 creamos una variable para recoger cualquier posible error en la subida del archivo y creamos en la siguiente linea la variable $subido con valor de false, pues aun no sabemos si logro subir correctamente.
En las lineas de la 8 a la 13, recogemos los datos de los demas campos del formulario y que fueron recibidos a través de la variable $_post
A partir de la linea 17 creamos una pagina web con la misma estructura del resto del sitio para que en ella se muestren los resultados de la subida del archivo.
Ahora bien, como lo demás es la estructura de la pagina saltaremos hasta la linea 28 que es donde abrimos la etiqueta php para embeber nuestro código en la pagina.
En la linea 29 usamos un if en donde primero usamos la instrucción «isset» cuya función es determinar si una variable existe o no y si su valor no es nulo, en si la usamos como medida de seguridad, pues con ella verificamos si se creo la variable correspondiente al botón submit, esto nos indica que la información y el archivo que se recibe en el servidor proviene en efecto del formulario y no de otro lado, ademas verificamos que el valor de la variable $error es igual a UPLOAD_ERR_OK que es la constante que indica que el archivo subió con éxito.
Cuando un archivo sube al servidor, este no sube a la ubicación definitiva sino a una ubicación temporal, por lo que en la linea 30 hacemos uso de la instrucción copy, para copiar el archivo de su ubicación temporal $_files[«archivo»][«tmp_name»] a su ubicación definitiva y que construimos en la variable $archivo.
En la linea 31 verificamos que el archivo se haya podido mover a su ubicación definitiva, en ese caso, presentamos el mensaje de éxito con la instrucción echo, y a continuación hacemos una consulta de inserción para almacenar todos los datos del producto en la tabla de productos.
En la linea 37 usamos mysqli_affected_rows para determinar si se logro almacenar el producto en la tabla y usamos un if para verificar su valor e indicar si se almaceno o no el registro.
En la linea 46 vemos el «else» que corresponde al if de la linea 29, con la cual enviamos el mensaje de que se produjo un errór al subir el archivo.
Para terminar el ejemplo, veremos la parte final del archivo.
Con esto, terminamos el ejemplo de registrar los productos en la tabla para poder publicarlos en nuestra tienda en linea.
muy buenos tus tutoriales bro !! espero que puedas terminar el modulo de ventas , y esta muy dinamico la interfaz ventas .. sigo de cerca tus tutoriales gracias
Me gustaMe gusta