18. Definiendo operaciones CRUD del Modelo

En este capítulo vamos a tratar de hacer el esquema y desarrollar todo lo necesario para aplicar el patrón MVC en el inicio de una aplicación PHP. Lo primero que haremos será crear un archivo SQL . Vamos a definir cuales van a ser todas esas operaciones CRUD en base a las entidades que necesitamos generar, y que la aplicación estará consumiendo. Crearemos un archivo denominado peliculas_crud.sql que llevará la sintaxis que iremos incluyendo en este capítulo.

Lo primero que crearemos en nuestro archivo es el esquema de lo que vamos a necesitar hacer.

Ejm

/*
LISTADO DE OPERACIONES CRUD
*/

/*
TENEMOS 3 ENTIDADES
movies
    Crear películas y series
    Actualizar películas y series
    Eliminar películas y series
    Buscar todas las películas y series
    Buscar una película o serie por title, author, actors o genres
    Buscar una película o serie por categoría
    Buscar un película o serie por status
status
    Crear un status
    Actualizar status
    Eliminar status
    Buscar todos los status
    Buscar un status por su status_id
users
    Crear usuario
    Actualizar usuario
        Datos generales
        Passwd
    Eliminar usuario
    Buscar todos los usuarios
    Buscar un usuario en concreto por:
        user
        email
        role
*/

El siguiente paso será crear dichas consultas con código SQL. Las primeras consultas trabajan sobre la tabla movies.

Ejm

/* SENTENCIAS */
-- movies
-- Crear películas y series
INSERT INTO movies SET imdb_id = 'tt3749900', title = 'Gotamm',
plot = '', author = '', actors = '', country = '',
premiere = '2014', trailer = '', poster = '', rating = 8.0,
genres = 'Cine, Drama, Thriller', category = 'Serie', status = 3;

-- actualizar películas y series
UPDATE movies SET title = 'Ghotam' WHERE imdb_id = 'tt3749900';

-- eliminar películas y series
DELETE FROM movies WHERE imdb_id = 'tt3749900';

-- buscar todas las películas
SELECT m.imdb_id, m.title, m.plot, m.author, m.actors, m.country
m.premiere, m.poster, m.trailer, m.rating, m.genres, m.category, s.status
FROM movies AS m
INNER JOIN status AS s
ON m.status = s.status_id;

-- buscar por title, author, actors o genres
SELECT m.imdb_id, m.title, m.plot, m.author, m.actors, m.country
m.premiere, m.poster, m.trailer, m.rating, m.genres, m.category, s.status
FROM movies AS m
INNER JOIN status AS s
ON m.status = s.status_id
WHERE MATCH(m.title, m.author, m.actors, m.genres)
AGAINST('drama' IN BOOLEAN MODE);

-- buscar por una categoría
SELECT m.imdb_id, m.title, m.plot, m.author, m.actors, m.country
m.premiere, m.poster, m.trailer, m.rating, m.genres, m.category, s.status
FROM movies AS m
INNER JOIN status AS s
ON m.status = s.status_id
WHERE m.category = 'Movie';

-- buscar una película o serie por status
SELECT m.imdb_id, m.title, m.plot, m.author, m.actors, m.country
m.premiere, m.poster, m.trailer, m.rating, m.genres, m.category, s.status
FROM movies AS m
INNER JOIN status AS s
ON m.status = s.status_id
WHERE m.status = 1;

El siguiente paso es generar las consultas para la tabla status.

Ejm

-- status
-- Crear status
INSERT INTO status SET status_id = 0, status = 'Otro estado';

-- Actualizar status
UPDATE status SET status = 'Other status' WHERE status_id = 6;

-- Eliminar status
DELETE FROM status WHERE status_id = 6;

-- Buscar todos los status
SELECT * FROM status;

-- Buscar un status en particular
SELECT * FROM status WHERE status_id =3;

El siguiente paso es generar las sentencias que manejen la tabla users.

Ejm

-- users
-- Crear usuario
INSERT INTO users SET user = '@usuario', email = 'user@user.com',
nombre = 'Francisco', birthday = '1972-02-02', pass = MD5('pass'), role = 'Admin';

-- Actualizar usuario
UPDATE users SET name = 'Soy un usuario', birthday = '1994-02-03', role = 'User'
WHERE user = 'Francisco' AND email = 'user@user.com';

-- Actualizar pass
UPDATE users SET pass = MD5('nuevopass')
WHERE user = 'Francisco' AND email = 'user@user.com';

-- Eliminar usuario
DELETE FROM users
WHERE user = 'Francisco' AND email = 'user@user.com';

-- Buscar todos los usuarios
SELECT * FROM users;

-- Buscar usuarios por user
SELECT * FROM users WHERE user = 'Francisco';

-- Buscar usuarios por email
SELECT * FROM users WHERE email = 'user@user.com';

-- Buscar usuarios por role
SELECT * FROM users WHERE role = 'Admin';
Scroll al inicio