Foros del Web » Programando para Internet » PHP »

Registros relacionados con genero

Estas en el tema de Registros relacionados con genero en el foro de PHP en Foros del Web. hola *:-* tengo mi tabla de esta manera | ID | | Nombre | |Genero | | 1 | | nombrepelicula | | TERROR | ...
  #1 (permalink)  
Antiguo 03/06/2011, 10:52
 
Fecha de Ingreso: mayo-2011
Mensajes: 59
Antigüedad: 12 años, 11 meses
Puntos: 1
Registros relacionados con genero

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 guardar la id en una variable
Código PHP:
Ver original
  1. <?php
  2. $idVariable = $_GET['id'];
  3. $sql = "SELECT id,genero FROM peliculas WHERE( id = '".$idVariable."' );";
  4. $query = mysql_query( $sql);
  5.  *if(!$query){
  6.  * *print "Error al ejecutar la query.";
  7.  *} *
  8. ?>

llamar la id en la consulta para que muestre que ids con mismo genero hay disponible
Código PHP:
Ver original
  1. function peliculas_relacionadas($idVariable){
  2. $c=@mysql_query("SELECT id,nombre,genero FROM peliculas WHERE( genero=' '".$idVariable."' ORDER BY id DESC LIMIT 10");
  3. while($i=@mysql_fetch_array($c)){
  4. echo "contenido">

y mostrando la funcion ..

Código PHP:
Ver original
  1. <?php peliculas_relacionadas(); ?>

pero no me funciona

Última edición por simpleplan_874; 03/06/2011 a las 11:03
  #2 (permalink)  
Antiguo 03/06/2011, 11:21
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Registros relacionados con genero

no estas pasanso ninguna variable a
<?php peliculas_relacionadas(XXX); ?>
  #3 (permalink)  
Antiguo 03/06/2011, 11:31
 
Fecha de Ingreso: mayo-2011
Mensajes: 59
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Registros relacionados con genero

si he puesto

<?php peliculas_relacionadas($idVariable); ?>

pero no me muestra nada , me han pasado un dato que deberia hacerlo con sentencia anidadas , pero ahy si ya me perdi..

Código MySQL:
Ver original
  1. SELECT * FROM peliculas WHERE genero IN (SELECT genero FROM peliculas WHERE id = ?)
  #4 (permalink)  
Antiguo 03/06/2011, 11:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Registros relacionados con genero

mostrame el codigo completo en una o dos paginas y lo analizamos
  #5 (permalink)  
Antiguo 03/06/2011, 11:40
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Registros relacionados con genero

duda , por que en el query le dejas un espacio cuando le pasas el genero ?

genero=' '".$idVariable."'


Código PHP:
Ver original
  1. #
  2. $c=@mysql_query("SELECT id,nombre,genero FROM peliculas WHERE( genero=' '".$idVariable."' ORDER BY id DESC LIMIT 10");
  3. #
  4. while($i=@mysql_fetch_array($c)){
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #6 (permalink)  
Antiguo 03/06/2011, 11:43
 
Fecha de Ingreso: mayo-2011
Mensajes: 59
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Registros relacionados con genero

pues te muestro la parte mas importante el html , no creo que sirva aqui...

Peliculas.php

Código PHP:
Ver original
  1. <?php
  2. function limpia($var){
  3.     $var = strip_tags($var);
  4.     $malo = array("\\",";","\'","'",'"','\"');
  5.     $i=0;$o=count($malo);
  6.     while($i<=$o){
  7.         $var = str_replace($malo[$i],"",$var);
  8.         $i++;
  9.     }
  10.     return $var;
  11. }
  12. function LimpiarTodo($datos){
  13.     if(is_array($datos)){
  14.         $datos = array_map('limpia',$datos);
  15.     }else{
  16.         die("<font color=#ff0000><b>Error:</b></font> La funcion <b>LimpiarTodo</b> debe contener un arreglo.");
  17.     }
  18.     return $datos; 
  19. }
  20.  
  21. ### Seguridad ###
  22. if($_POST){
  23.     $_POST =& LimpiarTodo($_POST);
  24. }
  25. if($_GET){
  26.     $_GET =& LimpiarTodo($_GET);
  27. }
  28. //
  29. @require_once"Procesos/Configurar.php";
  30. @require_once"Procesos/Funciones.php";
  31.  
  32. $anime = anime_v($_GET['id']);
  33. $animeX = $anime;
  34. $animex=$anime;
  35.  
  36. foreach ($animex as $anime){}
  37. if($anime['ANIME'] == 'no'){
  38. redireccionar();
  39. }
  40.  
  41.  
  42. //
  43.  
  44.  <?php
  45. $idVariable = $_GET['id'];
  46. $sql = "SELECT id,genero FROM animes WHERE( id = '".$idVariable."' );";
  47. $query = mysql_query( $sql);
  48.  if(!$query){
  49.   print "Error al ejecutar la query.";
  50.  }
  51. ?>
  52.  
  53.  
  54. <?php peliculas_relacionadas($idVariable); ?>

y en Funciones.php

Código PHP:
Ver original
  1. <?php
  2. require"Configurar.php";
  3.  
  4. // Redirecionar al index
  5. function redireccionar(){
  6. header("Location: ".$_web);
  7. }
  8. // extraer datos
  9. function anime_v($_id=0){
  10. $ex = @mysql_query("SELECT id,nombre,descripccion,imagen,id_capitulo,numero_capitulo,embed,descargar,tamaño,nombre_capitulo FROM animes INNER JOIN capitulos ON animes.id=capitulos.id_anime where id = ".$_id);
  11. if(@mysql_num_rows($ex) > 0){
  12. while ($i = @mysql_fetch_assoc($ex)){
  13. $anime[] = array("ANIME"=>'si',"nom"=>$i['nombre'],"descrip"=>$i['descripccion'],"id_cap"=>$i['id_capitulo'],"embed"=>$i['embed'],"descar"=>$i['descargar'],"tamañ"=>$i['tamaño'],"img"=>$i['imagen'],"n_capitulo"=>$i['numero_capitulo'],"nom_capitulo"=>$i['nombre_capitulo']);
  14. }
  15. }else{
  16. $anime[] = array("ANIME"=>'no');
  17. }
  18. return $anime;
  19. }
  20.  
  21. /
  22. // Muestra las Peliculas relacionadas
  23. function peliculas_relacionadas($idVariable){
  24. $c=@mysql_query("SELECT id,nombre,genero FROM animes WHERE( genero=' '".$idVariable."' ORDER BY id DESC LIMIT 10");
  25. while($i=@mysql_fetch_array($c)){
  26. echo "<div class=\"item\">
  27.          <div class=\"boxgrid captionfull\"><a href=\"pelicula/".hacer_url($i['nombre'])."_".$i['id'].".html\"><img src=\"".$i['imagen']."\" title=\"Pelicula Online ".$i['nombre']."\"class=\"imgl\" width=\"166\" style=\"opacity:0.8;filter:alpha(opacity=70)\" onmouseover=\"this.style.opacity=1;this.filters.alpha.opacity=100\"  onmouseout=\"this.style.opacity=0.8;this.filters.alpha.opacity=70\" border=\"0\" height=\"250\"></a><a href=\"#\"></a>
  28.            <div class=\"cover boxcaption\">
  29.              <h1>".$i['nombre']."</h1>
  30.            </div>
  31.          </div>
  32.        </div>";
  33. }
  34. }
  35. ?>

Última edición por simpleplan_874; 03/06/2011 a las 11:58
  #7 (permalink)  
Antiguo 03/06/2011, 12:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 59
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Registros relacionados con genero

todavia no hallo la solución , he probado quitando comillas ' , pero no me resulta alguien tiene idea como hacer de forma correcta la sentencia sql
  #8 (permalink)  
Antiguo 03/06/2011, 12:38
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Registros relacionados con genero

Te recomiendo que cuando sufras un error o no te salen datos consultados, trates de resolver el problema desde lo más básico hasta la aplicacíón completa, todo esto poco por poco, por ejemplo:

*En primer lugar verifíca en el phpmyadmin si el query usado te funciona y te devuelve el resultado deseado.
*Segundo verifica si el dato $_GET te imprime algo
*Tercero imprime la consulta generada en el php a ver que te devuelve
* Cuarto y muy importante, quítale esos @ al inicio de tus funciones mysql_xxx(), es de mala práctica ocultar errores que pueden al final ayudarte a resolver tu problema.

Saludos
__________________
Quitenme la vida pero no la bebida.
  #9 (permalink)  
Antiguo 03/06/2011, 14:30
 
Fecha de Ingreso: mayo-2011
Mensajes: 59
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Registros relacionados con genero

gracias cesarpunk por tu comentario , voy a intentar depurar las query en phpmyadmin ,
  #10 (permalink)  
Antiguo 03/06/2011, 14:37
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Registros relacionados con genero

Creo que el problema es que estas pidiendo que muestre los registros en WHERE genero=".$idVariable."' , y por lo que vi mas arriba, $idvariable no es un genero, si no la ID del registro, tendrias que pedir que muestre WHERE genero = $genero pero determinando previamente que $genero es igual al genero del registro que se esta viendo, se entiende?
  #11 (permalink)  
Antiguo 03/06/2011, 16:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 59
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Registros relacionados con genero

gracias waldragon por tu comentario , me ha dejado mas cerca de solucionar mi problema


deberia realizar la siguiente consulta

Código PHP:
Ver original
  1. SELECT * FROM mitabla WHERE genero = "$generodelapelicula"
cosa que si me funciona pero como guardo o obtengo el valor de un genero X que se esta viendo

esto de aqui me serviria para obtener el id , pero como haria para obtener el valor del genero y pasarlo a una variable
Código PHP:
Ver original
  1. <?php
  2. $idVariable = $_GET['id'];
  3. $sql = "SELECT id,genero FROM animes WHERE( id = '".$idVariable."' );";
  4. $query = mysql_query( $sql);
  5.  if(!$query){
  6.   print "Error al ejecutar la query.";
  7.  }
  8. ?>
  #12 (permalink)  
Antiguo 03/06/2011, 17:00
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Registros relacionados con genero

abusado un resultset no es un query

Código PHP:
Ver original
  1. $idVariable = $_GET['id'];
  2. $sql = "SELECT id,genero FROM animes WHERE( id = '".$idVariable."' );";
  3. $result= mysql_query($sql);
  4.  if(!$result){
  5.   print "Error al ejecutar la query.";
  6.  }
  7. $row = mysql_fetch_array($result, MYSQL_ASSOC);
  8. $genero=$row["genero"] ;
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #13 (permalink)  
Antiguo 03/06/2011, 17:18
 
Fecha de Ingreso: mayo-2011
Mensajes: 59
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Registros relacionados con genero

gracias mogurbon tambien se me habia ocurrido extraer el genero con un array directamente y me mostro el genero del cual estaba viendo

Código SQL:
Ver original
  1. "gen"=>$i['genero'],


Código SQL:
Ver original
  1. FUNCTION peliculas_relacionadas($genero){
  2. $c=@mysql_query("SELECT id,nombre,imagen FROM animes WHERE genero = '".$genero."' LIMIT 0 , 30");
  3. while($i=@mysql_fetch_array($c)){

gracias a todos por sus consejos hoy aprendi algo mas en el mundo de la programacion que es bien grande y claro siempre la logica es bien importante

Etiquetas: genero, registros, relacionados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:30.