Professional Documents
Culture Documents
Agregamos un formulario para poder enviar un registro de un nuevo producto. Ver imagen:
mysqli_close($conexion);
?>
<tr>
<form action="nuevoproducto.php" method="POST">
<td><input type="text" name="nombre"></td>
<td><input type="text" name="precio"></td>
<td><input type="text" name="peso"></td>
<td><input type="text" name="longitud">x<input type="text"
name="anchura">x<input type="text" name="altura"></td>
<td><input type="text" name="existencias"></td>
<td><input type="text" name="activo"></td>
<td><input type="submit"></td>
</form>
</tr>
</table>
RESULTADO
E-mail: jesusflorescori@hotmail.com
2
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
E-mail: jesusflorescori@hotmail.com
3
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
En caso que la impresin de los registros no reconozca caracteres especiales, agregar por encima
del cdigo la siguiente etiqueta. Ver imagen:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
CREAR EL ARCHIVO ACTUALIZARPRODUCTO.PHP (Dentro la carpeta admin)
<?php include "../php/config.inc" ?>
<?php
$conexion = mysqli_connect($servidor,$usuario,$contrasena,$basededatos);
mysqli_set_charset($conexion,"utf8");
$peticion = "UPDATE productos SET
nombre='".$_POST['nombre']."',
descripcion='".$_POST['descripcion']."',
precio='".$_POST['precio']."',
peso='".$_POST['peso']."',
longitud='".$_POST['longitud']."',
anchura='".$_POST['anchura']."',
altura='".$_POST['altura']."',
existencias='".$_POST['existencias']."',
activo='".$_POST['activo']."'
WHERE id=".$_GET['id']."
";
$resultado = mysqli_query($conexion, $peticion);
mysqli_close($conexion);
?>
<script type="text/javascript">
window.location="productos.php";
</script>
Actualizar productos y revisar si en la base de datos se han modificado los cambios.
E-mail: jesusflorescori@hotmail.com
4
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
CREACION DE CLIENTES
En el archivo de index.php que se encuentra en la carpeta admin encontramos tres enlaces. Ahora
procederemos a crear clientes.php(Gestionar clientes)
E-mail: jesusflorescori@hotmail.com
5
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
<td><input
<td><input
<td><input
<td><input
</form>
type="text" name="poblacion"></td>
type="text" name="pais"></td>
type="text" name="dninif"></td>
type="submit"></td>
</tr>
</table>
RESULTADO
E-mail: jesusflorescori@hotmail.com
6
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
Nota: Por seguridad los botones de nuevo cliente y eliminar cliente los colocaremos
fuera del formulario del archivo clientes.php.
Por ltimo abrimos el archivo actualizarproducto.php, copiamos el cdigo y lo pegamos en el
archivo actualizarcliente.php y modificamos. Ver imagen:
<?php include "../php/config.inc" ?>
<?php
$conexion = mysqli_connect($servidor,$usuario,$contrasena,$basededatos);
mysqli_set_charset($conexion, "utf8");
$peticion = "UPDATE clientes SET
nombre='".$_POST['nombre']."',
apellido='".$_POST['apellido']."',
email='".$_POST['email']."',
usuario='".$_POST['usuario']."',
contrasena='".$_POST['contrasena']."',
telefono='".$_POST['telefono']."',
movil='".$_POST['movil']."',
fax ='".$_POST['fax']."',
direccioncall ='".$_POST['direccioncall']."',
codigopostal ='".$_POST['codigopostal']."',
poblacion ='".$_POST['poblacion']."',
pais ='".$_POST['pais']."',
dninif ='".$_POST['dninif']."'
WHERE id=".$_GET['id']."
";
$resultado = mysqli_query($conexion, $peticion);
mysqli_close($conexion);
?>
<script type="text/javascript">
window.location="clientes.php";
</script>
Probar el juego de registros: agregar, eliminar y actualizar clientes.
REGISTROS DE VISITAS
CREACION DE UN ARCHIVO PARA REGISTRAR VISITANTES
Abrir el archivo piedepagina.inc y agregar el siguiente cdigo:
</section>
<footer>
<h6>(c)Jesus Michael Flores Cori</h6>
</footer>
</div>
</body>
</html>
<?php
include "log.php";
?>
Creamos ahora la tabla registros que contendr 10 campos en la base de datos tiendaonline.
Ver imagen:
E-mail: jesusflorescori@hotmail.com
7
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
A continuacin creamos el archivo log.php que estar dentro de la carpeta php. Ver imagen:
<?php include "config.inc" ?>
<?php
$conexion = mysqli_connect($servidor,$usuario,$contrasena,$basededatos);
mysqli_set_charset($conexion, "utf8");
$peticion = "INSERT INTO registros VALUES (
'".date('U')."',
'".date('Y')."',
'".date('m')."',
'".date('d')."',
'".date('H')."',
'".date('i')."',
'".date('s')."',
'".$_SERVER['REMOTE_ADDR']."',
'".$_SERVER['HTTP_USER_AGENT']."',
'".$_SERVER['REQUEST_URI']."'
)";
$resultado = mysqli_query($conexion, $peticion);
mysqli_close($conexion);
?>
E-mail: jesusflorescori@hotmail.com
8
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
ESTADISTICAS
Modificar el archivo index.php que se encuentra ubicado en la carpeta admin y agregar un nuevo
enlace: estadsticas.php. Ver imagen:
Ahora crearemos el archivo estadisticas.php, que se ubicar dentro de la carpeta admin. Ver
imagen:
<?php include "cabecera.inc";?>
<?php include "../php/config.inc" ?>
<?php
$conexion = mysqli_connect($servidor,$usuario,$contrasena,$basededatos);
mysqli_set_charset($conexion, "utf8");
$peticion = "
SELECT idproducto,productos.nombre,COUNT(idproducto) FROM `lineaspedido` LEFT JOIN
productos ON lineaspedido.idproducto = productos.id GROUP BY idproducto ORDER BY
COUNT(idproducto) DESC LIMIT 1
";
$resultado = mysqli_query($conexion, $peticion);
while($fila = mysqli_fetch_array($resultado)) {
echo "El producto ms comprado es: ".$fila['nombre'];
}
echo "<br>";
echo "Los productos ms comprados:";
echo "<table>";
$peticion = "
SELECT idproducto,productos.nombre,COUNT(idproducto) FROM `lineaspedido` LEFT JOIN
productos ON lineaspedido.idproducto = productos.id GROUP BY idproducto ORDER BY
COUNT(idproducto) DESC
";
$resultado = mysqli_query($conexion, $peticion);
while($fila = mysqli_fetch_array($resultado)) {
echo
"<tr><td>".$fila['nombre']."</td><td>".$fila['COUNT(idproducto)']."</td></tr>";
}
echo "</table>";
$peticion = "
SELECT clientes.nombre,clientes.apellidos,SUM(unidades*precio) FROM `pedidos` LEFT JOIN
lineaspedido ON pedidos.id = lineaspedido.idpedido LEFT JOIN productos ON
E-mail: jesusflorescori@hotmail.com
9
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
E-mail: jesusflorescori@hotmail.com
10
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
E-mail: jesusflorescori@hotmail.com
11
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
'".$_POST['nombre']."',
'".$_POST['apellidos']."',
'".$_POST['email']."',
'".$_POST['usuario']."',
'".$_POST['contrasena']."',
'',
'',
'',
'',
'',
'',
'',
''
)";
$resultado = mysqli_query($conexion, $peticion);
mysqli_close($conexion);
echo '
<script>
window.location="logcliente.php?usuario='.$_POST['usuario'].'&contrasena='.$_POS
T['contrasena'].'"
</script>
';
}else{
echo '
<script>
window.location="../confirmar.php"
</script>
';
}
?>
Si el nombre de usuario es igual a uno ya registrado en la base de datos, entonces me devolver
a confirmar.php para poder ingresar otro nombre de usuario inexistente en la base de datos.
PEDIDOS DE MULTIPLES UNIDADES
Por ahora cuando uno desea comprar un producto varias veces debe de dar clic al botn confirmar
varias veces, sin embargo para mejorar la compra mltiple crearemos un botn que permita
seleccionar varias cantidades del producto. Abrir el archivo index.php del directorio principal y
agregar la siguiente lnea de cdigo:
E-mail: jesusflorescori@hotmail.com
12
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
Para finalizar el jquery realizaremos el paso de los valores a Ajax. Ver imagen:
Abrimos el archivo poncarrito.php que de momentos no conoce algunas variables y las definimos.
Ver imagen:
VER RESULTADO:
Docente: Jess Michael FLORES CORI
E-mail: jesusflorescori@hotmail.com
13
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
Realizar un compra de un producto varias veces y ver el registro de la tabla pedidos, las
unidades que se han registrado. Ver imagen:
ACTUALIZACION DE ESTADISTICAS
Si un usuario nuevo compra varias unidades de un mismo producto, cuando uno se dirija a
estadsticas el archivo estadsticas.php mostrar el producto pero en una sola cantidad comprada.
Para ello modificaremos el archivo estadsticas.php. Ver imagen:
Modificar la 3 y 4 consulta. Revizar:
SELECT clientes.nombre,clientes.apellido,SUM(unidades*precio) FROM `pedidos` LEFT JOIN
lineaspedido ON pedidos.id = lineaspedido.idpedido LEFT JOIN productos ON
Docente: Jess Michael FLORES CORI
E-mail: jesusflorescori@hotmail.com
14
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
E-mail: jesusflorescori@hotmail.com
15
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
VALUES
mysqli_close($conexion);
?>
<script type="text/javascript">
window.location="productos.php";
</script>
Por ultimo en caso el administrador quiera subir cualquier archivo que no sea una imagen,
agregaremos el siguiente cdigo. Ver imagen:
if($_FILES['imagen']['type'] == "image/gif" || $_FILES['imagen']['type'] ==
"image/jpg"
||
$_FILES['imagen']['type']
==
"image/jpeg"
||
$_FILES['imagen']['type'] == "image/png"){
En caso que se aun no imprime correctamente la subida de la imagen analiza el archive index.php
del directorio principal. Ver imagen:
<?php include "php/cabecera.inc" ?>
<?php include "php/config.inc" ?>
<?php
$conexion = mysqli_connect($servidor,$usuario,$contrasena,$basededatos);
mysqli_set_charset($conexion, "utf8");
$peticion = "SELECT * FROM productos WHERE existencias > 0";
$resultado = mysqli_query($conexion, $peticion);
while($fila = mysqli_fetch_array($resultado)) {
echo "<article>";
$peticion2 = "SELECT * FROM imagenesproductos WHERE idproducto = ".$fila['id']."
LIMIT 1";
$resultado2 = mysqli_query($conexion, $peticion2);
while($fila2 = mysqli_fetch_array($resultado2)) {
echo "<img src='photo/".$fila2['imagen']."' width=100px>";
}
echo "<a href='producto.php?id=".$fila['id']."'><h3>".$fila['nombre']."</h3></a>";
echo "<p>".$fila['descripcion']."</p>";
echo "<p>Precio: ".$fila['precio']." </p>";
echo "<input type='number' value='1' max='5' min='1' id='num".$fila['id']."'>";
echo "<br>";
echo
"<a
href='producto.php?id=".$fila['id']."'><button>Ms
informacin</button></a>";
Docente: Jess Michael FLORES CORI
E-mail: jesusflorescori@hotmail.com
16
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
}
mysqli_close($conexion);
?>
E-mail: jesusflorescori@hotmail.com
17
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
<body>
<div id="contenedor">
<header>
<a href="index.php"><h1>Panel de control</h1></a>
<h2>Tienda online</h2>
<a href='pedidos.php' class="botonmenu">Gestionar pedidos</a>
<a href='clientes.php' class="botonmenu">Gestionar clientes</a>
<a href='productos.php' class="botonmenu">Gestionar productos</a>
<a href='estadisticas.php' class="botonmenu">Obtener estadsticas</a>
<div style="clear:both;"></div>
</header>
<section>
El archivo index.php quedara de la siguiente
forma:
Daremos un mejor estilizando a nuestras
tablas con css, para ellos borramos todos los
border=1 de las tablas creadas. Ver
imagen:
E-mail: jesusflorescori@hotmail.com
18
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
.boton,button{
box-shadow:0px 5px 10px rgba(0,0,0,0.3);
border:0px;
padding:4px;
font-size:10px;
}
.sombreado{
background:rgb(220,220,220);
}
Modificamos tambin un poco el archivo clientes.php para alternar una fila sombreada y otra no.
Ver imagen:
<?php include "cabecera.inc";?>
<?php include "../php/config.inc" ?>
<table>
<?php
$contador = 0;
$conexion = mysqli_connect($servidor,$usuario,$contrasena,$basededatos);
mysqli_set_charset($conexion, "utf8");
$peticion = "SELECT * FROM clientes ";
$resultado = mysqli_query($conexion, $peticion);
while($fila = mysqli_fetch_array($resultado)) {
echo '<tr';
if($contador == 1){echo " class='sombreado' ";}
echo'>';
echo'
<form action="actualizarcliente.php?id='.$fila['id'].'" method="POST">
<td><input
type="text"
name="nombre"
value="'.$fila['nombre'].'"><input
type="text" name="apellido" value="'.$fila['apellido'].'"></td>
<td><input type="text" name="email" value="'.$fila['email'].'"></td>
<td><input type="text" name="usuario" value="'.$fila['usuario'].'"></td>
<td><input type="text" name="contrasena" value="'.$fila['contrasena'].'"></td>
<td><input type="text" name="telefono" value="'.$fila['telefono'].'"></td>
<td><input type="text" name="movil" value="'.$fila['movil'].'"></td>
<td><input type="text" name="fax" value="'.$fila['fax'].'"></td>
<td><input type="text" name="direccioncall" value="'.$fila['direccioncall'].'"></td>
<td><input type="text" name="codigopostal" value="'.$fila['codigopostal'].'"></td>
<td><input type="text" name="poblacion" value="'.$fila['poblacion'].'"></td>
<td><input type="text" name="pais" value="'.$fila['pais'].'"></td>
<td><input type="text" name="dninif" value="'.$fila['dninif'].'"></td>
<td><input class="boton" type="submit" value="Actualizar"></td>
</form>
<td><a
href="eliminarcliente.php?id='.$fila['id'].'"><button>Borrar</button></a></td>
</tr>';
if($contador == 0){$contador++;}else{$contador--;}
}
mysqli_close($conexion);
?>
RESULTADO:
E-mail: jesusflorescori@hotmail.com
19
UNIDAD DIDCTICA: TALLER DE PROGRAMACIN WEB
ACTIVIDADES DE EXTENSION:
Validar los campos necesarios de los formularios de nuestra aplicacin web Email,
Contrasea, etc. Ejemplo el campo de contrasea, en la creacin de nuevo cliente por
defecto muestra los caracteres, modificarlo.
Aplicar la funcin crypt() a las contraseas para encriptarlas en la base de datos.
Insertar un Slider en la tienda online, que muestre los productos que oferta la tienda.
Subir la tienda online a un servidor remoto, tener en consideracin el archive config.php
el cual habr que modificar segn los datos de usuario, contrasea, etc.
Investigar y dar un posicionamiento web a la pgina tienda online.
Trabajar con google analytic y agregar los script necesarios para el registro de las visitas
de nuestros usuarios.
FIN DEL WORKSHOP
E-mail: jesusflorescori@hotmail.com