Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: musicaward en 3 Junio 2011, 06:30 AM

Título: mostrar registros relacionados con genero
Publicado por: musicaward en 3 Junio 2011, 06:30 AM
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  :-[
Título: Re: mostrar registros relacionados con genero
Publicado por: Nakp en 3 Junio 2011, 06:40 AM
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
Título: Re: mostrar registros relacionados con genero
Publicado por: musicaward en 3 Junio 2011, 20:14 PM
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); ?>
Título: Re: mostrar registros relacionados con genero
Publicado por: Feedeex en 5 Junio 2011, 18:31 PM
$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.