mostrar registros relacionados con genero

Iniciado por musicaward, 3 Junio 2011, 06:30 AM

0 Miembros y 1 Visitante están viendo este tema.

musicaward

hola  :-* tengo mi tabla de esta manera


| ID | | Nombre | |Genero |

| 1 | | nombrepelicula | | TERROR |

Tengo una película con id 204 y género "Terror".. Lo que busco ahora es encontrar más películas del género que tiene la película con id 204.

como podria hacer la consulta he intentado con

Código (php) [Seleccionar]
<?php
$idVariable 
$_GET['id']; 
$sql "SELECT id,genero FROM peliculas WHERE( id = '".$idVariable."' );"
$query mysql_query$sql); 
  if(!
$query){ 
    print 
"Error al ejecutar la query."
  }  
?>

Código (php) [Seleccionar]
function peliculas_relacionadas($idVariable){
$c=@mysql_query("SELECT id,nombre,genero FROM peliculas WHERE( genero=' '".$idVariable."' ORDER BY id DESC LIMIT 10");
while($i=@mysql_fetch_array($c)){
echo "contenido">


llamandola con
Código (php) [Seleccionar]
<?php peliculas_relacionadas(); ?>

pero no me funciona  :-[

Nakp

mmmm la forma mas vulgar de hacerlo es con las sentencias anidadas :P

Código (sql) [Seleccionar]
select * from peliculas where genero in (select genero from peliculas where id = ?)

fin :D
Ojo por ojo, y el mundo acabará ciego.

musicaward

#2
seria algo asi¿?

guardo la id actual en una variable

Código (php) [Seleccionar]
<?php
$idVariable 
$_GET['id']; 
$sql "SELECT id,genero FROM peliculas WHERE( id = '".$idVariable."' );"
$query mysql_query$sql); 
  if(!
$query){ 
    print 
"Error al ejecutar la query."
  }  
?>


y esto aplicaria en mi funcion
Código (php) [Seleccionar]
function peliculas_relacionadas($idVariable){
$c=@mysql_query("SELECT * FROM peliculas WHERE genero IN (SELECT genero FROM peliculas WHERE id = '".$idVariable."') ORDER BY id DESC LIMIT 10");
while($i=@mysql_fetch_array($c)){
echo "contenido">


la muestro

Código (php) [Seleccionar]
<?php peliculas_relacionadas($idVariable); ?>

Feedeex

$idVariable = $_GET['id'];
$sql = "SELECT id,genero FROM peliculas WHERE( id = '".$idVariable."' );";
$query = mysql_query( $sql);


Dudo de si puede producirse una SQLi con ese code, porque usa comillas dobles. Pero de todos modos, yo lo haría así:

$idVariable = $_GET['id'];
$consulta = mysql_query("SELECT * FROM tabla WHERE id='$idVariable'");
if(mysql_num_rows($consulta) == 0) {
  die("El ID indicado es invalido");
} else {
...sentencias....
}


Por las dudas.