Consulta para mostrar películas relacionadas por género en MySQL

Desde
10 Sep 2012
Mensajes
1.073
Hola quiero realizar una consulta y no me doy cuenta como hacerlo..

quiero mostrar las peliculas relacionadas de X peliculas por genero...

Por ejemplo:

Estoy en la pagina de la pelicula id=45 que el genero es de drama...

Lo que quiero hacer es en una consulta buscar las peliculas del genero drama, pero el tema es que desde el lugar en donde estoy no puedo saber que genero es.. solo puedo saber que pelicula es... en este caso la 45...

osea me faltaria saber que genero es el de la pelicula 45, si se puede hacer luego de este where...

SELECT * FROM ms_peliculas WHERE p_genero = (genero de la pelicula id 45)

Saludos y gracias !
 

Roodaka

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Feb 2013
Mensajes
121
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Uhmmm suponiendo que estando en la página de la película cuyo ID es 45, entonces 'por algún lado' debe estar el ID de la categoría a la que corresponde, es decir, los datos deberían estar ya que se necesitan para mostrar título, descripción y link/s a la película. Fíjate si la consulta principal (la que carga esos datos) incluye la columna p_genero o si tiene un asterisco (SELECT * ...) Del resultado de esa consulta podrías sacar el ID de género. (sería algo así como $peli['p_genero'])

Ésto es enteramente una suposición a modo de orientación, la verdad no se ni de qué script estás hablando, me baso en conceptos lógicos, nada más.

Un saludo!
 
Última edición:

krusty72

Kappa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
21 Abr 2010
Mensajes
2.689
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Si quieres saber el género por medio del id de una película:

SELECT * FROM tabla_ películas WHERE película_id=45 AND tabla_películas.id_genero=tabla_generos.id_genero

Selecciona todo de la tabla películas donde la película tiene un id 45 Y el id de genero de la misma tabla es igual al id de genero de la tabla genero.
 

Kabytes

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Jul 2013
Mensajes
7
Si entendi bien, lo que necesitas es hacer una subquery. Algo así debería funcionar:

PHP:
SELECT id, nombre, categoria
   FROM peliculas 
   WHERE categoria IN (SELECT categoria 
           FROM peliculas 
           WHERE id= 'ID-PELICULA-QUE-TIENES');
 

guitobon

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Abr 2013
Mensajes
19
Creo que me he perdido algo.
¿Cuáles son las tablas y la estructura de la BD?

Por cierto [MENTION=45372]Kabytes[/MENTION], eso de meter una subconsulta en un script de php, es tentar demasiado a la suerte, a no ser que puedas cachear el resultado, de forma que no tenga que ejecutarse casi nunca y que tengas muy pocos datos en la BD. Yo solo uso cosas así, para generar cosas offline reutilizables y cuando no tengo mas remedio.
Usar algo como eso en una home con un numero de vistas notable, puede marcar la diferencia entre necesitar un simple hosting compartido o un server dedicado.
 

Kabytes

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Jul 2013
Mensajes
7
Creo que me he perdido algo.
¿Cuáles son las tablas y la estructura de la BD?

Por cierto [MENTION=45372]Kabytes[/MENTION], eso de meter una subconsulta en un script de php, es tentar demasiado a la suerte, a no ser que puedas cachear el resultado, de forma que no tenga que ejecutarse casi nunca y que tengas muy pocos datos en la BD. Yo solo uso cosas así, para generar cosas offline reutilizables y cuando no tengo mas remedio.
Usar algo como eso en una home con un numero de vistas notable, puede marcar la diferencia entre necesitar un simple hosting compartido o un server dedicado.

Exactamente, no son consultas muy rápidas, pero son muy buenas para estos casos "enlaces relacionados" en donde siempre es recomendable hacer cache.

Yo las empleo en secciones muy solicitadas pero siempre creando cache :)
 
Arriba