Autor Tema: Ejercicio sql+php crear pequeña aplicación para gestión de usuarios y productos  (Leído 3545 veces)

javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Buenos dias. Tengo este enunciado de ejercicio

Crear una base de datos en MySQL con las siguientes tablas:
   CATEGORÍA
      id_categoria int, llave primaria (auto incrementable)
      nombre varchar(50)
PRODUCTO
      id_producto int, llave primaria (auto incrementable)
      nombre varchar(50),
      descripción text,
      cantidad int,
      categoría int, llave secundaria de CATEGORIA
   USUARIO
      id_usuario int, llave primaria (auto incrementable)
      nombre varchar(30),
      password varchar(255),
      tipo_usuario tinyint (0 para administradores, 1 para usuarios normales)

   
Crear una aplicación web que trabaje con la base de datos anterior, y que proporcione las siguientes funcionalidades:
1.   La aplicación tendrá como página principal una pantalla de validación de usuario. Constará de un formulario con un campo de texto para introducir el nombre de usuario, otro campo de texto para introducir el password, y un botón de entrada.
2.   Los administradores, una vez validados en la pantalla anterior, accederán a una pantalla desde la que podrán realizar las siguientes operaciones:
a.   Dar de alta usuarios: mediante un formulario se darán de alta en la base de datos nuevos usuarios.
b.   Dar de alta categorías: mediante un formulario se darán de alta en la base de datos nuevas categorías.
c.   Dar de alta productos: mediante un formulario se darán de alta en la base de datos nuevos productos, pertenecientes cada uno a una categoría previamente creada.
d.   Modificar datos: se podrá seleccionar un usuario, una categoría o un producto concreto, para modificar los datos.
e.   Visualización de stock: se seleccionará una categoría y se mostrarán en una tabla los productos de ésta y la cantidad de cada uno. Desde aquí se podrá modificar el stock.


3.   Los usuarios normales, una vez validados en la pantalla anterior, accederán a una pantalla donde podrán seleccionar una categoría, y se mostrarán todos los productos pertenecientes a ésta. NO SE MOSTRARÁ EL STOCK DE CADA PRODUCTO.
El usuario podrá realizar compras, seleccionando productos e indicando la cantidad que quiere. Habrá un botón de “Finalizar compra”, que descontará del stock de cada producto la cantidad seleccionada por el usuario, y cerrará sesión. Hay que controlar que la cantidad comprada por el usuario está disponible, en otro caso, se mostrará un mensaje de error y no se realizará la compra.

4.   Hay que incorporar, en las pantallas que lo requieran, un botón o link de desconexión, de tal forma que el usuario que esté usando la aplicación pueda abandonar la sesión.
Debes entregar el código de la base de datos junto con las páginas PHP-HTML de tu aplicación.


La base de datos con tablas la tengo hecha
Código: [Seleccionar]

create database almacen;
use almacen;

create table categoria (
id_categoria int auto_increment primary key,
nombre varchar (50));


create table producto (
id_producto int auto_increment primary key,
nombre varchar(50),
descripcion text,
cantidad int,
categoria int,
foreign key (categoria) references categoria(id_categoria));


create table usuario (
id_usuario int auto_increment primary key,
nombre varchar (30),
password varchar(255),
tipo_usuario tinyint);


Pero la duda que tengo es como creo el usuario administrador, segun pone el enunciado en la tabla usuario el campo tipo_usuario tinyint es 0 para administradores y 1 para usuarios¿que quiere decir esto?

« Última modificación: 11 de Junio 2017, 17:45 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:duda ejercicio sql+php
« Respuesta #1 en: 29 de Marzo 2017, 09:51 »
Hola javaquery.

Es solo una forma de diferenciar el tipo de usuario, cuando valides un nombre de usuario y su contraseña en la página principal de la aplicación, dependiendo del valor de este campo se abrirá una página u otra, si el valor es 0, nos llevará a la pantalla donde se darán de alta usuarios, productos, etc. y si el valor es 1 nos llevará a la pantalla que cita el apartado 3 del enunciado.

Saludos. ;D


javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Re:duda ejercicio sql+php
« Respuesta #2 en: 30 de Marzo 2017, 22:38 »
ok gracias,
De momento he credo un archivo llamado variables.php
Código: [Seleccionar]
<?php
$host 'localhost';
$user 'root';
$pass '';
$db_name 'almacen';

?>

y otro archivo index.php en el que tengo la conexion a la base de datos
Código: [Seleccionar]
<?php
include(
"variables.php");
$con mysqli_connect($host$user$pass$db_name) or die("Error de conexion con la base de datos");


?>
como hago la condicion que dice si es administrador sera 0 y si es usuario normal sera 1
y se haria en otro archivo o en el mismo index.php
un saludo
« Última modificación: 31 de Marzo 2017, 00:31 por pedro,, »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:duda ejercicio sql+php
« Respuesta #3 en: 31 de Marzo 2017, 01:14 »
Buenas.

Lo primero que se debe hacer una vez enviado el formulario es comprobar que existe el usuario introducido que tenga la contraseña correcta, si esto es correcto esta consulta nos devolverá el tipo de usuario que es, la consulta podría ser algo así:

Código: [Seleccionar]
select tipo_usuario from usuario where nombre like 'nombreIntroducido' and password like 'passworIntroducida';
Esto te devolvería el tipo de usuario que es el introducido.

Creo que de todas formas, para actuar correctamente lo primero que se tendría que hacer es comprobar que el nombre de usuario existe para en caso de no existir mostrar un mensaje advirtiendo de ello, si el nombre está en la tabla usuario comprobar que la contraseña es la correcta, si no lo fuese indicar al usuario que introdujo mal la contraseña y si es correcta, entonces comprobar que tipo de usuario es.

En cuanto donde hacerlo, según lo que dice el enunciado la validación tiene que llevarse a cabo en la página principal que es la que contendrá el formulario.

Saludos.

javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Re:duda ejercicio sql+php
« Respuesta #4 en: 03 de Abril 2017, 11:00 »
Hola
¿No tendria que crear primero los usuarios con sus contraseñas?y luego hacer la comprobacion de que existe el usuario y la contraseña es correcta.

para crear los usuarios seria asi?

insert into usuario values("pepe","12345");

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:duda ejercicio sql+php
« Respuesta #5 en: 03 de Abril 2017, 13:59 »
Buenas.

Según el enunciado, primero tendrás que hacer login con un administrador para poder crear usuarios, así que lo primero que deberías hacer es crear un usuario administrador manualmente.

A tu consulta le faltaría el tipo_usuario...

insert into usuario values("pepe","12345",0);

Saludos. ;D

javaquery

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 125
    • Ver Perfil
Re:duda ejercicio sql+php
« Respuesta #6 en: 03 de Abril 2017, 17:01 »
gracias
He avanzado bastante con esta practica
Ya tengo creado los usuarios y configurado cuando el usuario que entra es administrador o usuario normal. Ahora la duda me surge en este punto

2.   Los administradores, una vez validados en la pantalla anterior, accederán a una pantalla desde la que podrán realizar las siguientes operaciones:
a.   Dar de alta usuarios: mediante un formulario se darán de alta en la base de datos nuevos usuarios.

esos usuario que se daran de alta tengo que hacerlo en el mysqlworbench o tengo que darlos de alta desde el mismo formulario?.

tengo creado los siguientes codigos el index.html que es el formulario principal
Código: [Seleccionar]
<html>

<form action ="accion.php" method ="POST">

  Nombre: <input type ="text" name="varName" /><br>

Password<input type ="text" name ="varPass"/><br>

<input type ="submit" value ="entrada" /><br>

</form>

</html>

luego tengo un archivo llamado accion.php

Código: [Seleccionar]
<?php
include("variables.php");

$con mysqli_connect($servername$username$password$dbname) or die("Error de conexion con la base de datos");

$name $_POST['varName'];

$pass $_POST['varPass'];

$sql "SELECT * FROM usuario WHERE nombre='$name' AND password='$pass'";

$result $con->query($sql);

if (
$result->num_rows 0) {

$row $result->fetch_assoc();

if(
$row['tipo_usuario'] == 0){

    
header('Location: paginaadmin.php');

  }else{

    
header('Location: paginausuario.php');

  }

}else {

echo "Usuario no encontrado.";

}

 

$con->close();


?>


Luego otro archivo llamado variables.php,

Código: [Seleccionar]
<?php
$servername 'localhost';
$username 'root';
$password '';
$dbname 'almacen';

?>

mas luego los dos archivos de las paginas que redirigue segun sea usuario administrador o normal, pero estas todavia no las tengo escritas



« Última modificación: 03 de Abril 2017, 20:43 por pedro,, »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:duda ejercicio sql+php
« Respuesta #7 en: 04 de Abril 2017, 15:17 »
Una vez validado el usuario, habría que iniciar una sesión para que solo se pueda acceder a la página de administradores o de los usuarios sí está iniciada una sesión.
Así prevenimos que cualquiera pudiese acceder sin tener ningún tipo de usuario.

Los usuarios tendrás que darlos de alta, modificarlos o borrarlos desde la página paginaadmin.php.

Saludos. ;D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".