Foros del Web » Programando para Internet » PHP »

Query mal hecha?

Estas en el tema de Query mal hecha? en el foro de PHP en Foros del Web. Hola estoy tratando de hacer una base peliculas para un video hasta ahora cargar los datos a las tablas todo un exito.. Tengo una tabla ...
  #1 (permalink)  
Antiguo 04/03/2008, 12:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 2 meses
Puntos: 0
Query mal hecha?

Hola estoy tratando de hacer una base peliculas para un video hasta ahora cargar los datos a las tablas todo un exito..
Tengo una tabla de
películas, una de actores y para normalizar una de actores por película (además de otras como directores, origen etc), pero el problema lo tengo con las primeras 3.
Es que me repite la película según la cantidad de actores que tenga por cada una y no varios actores dentro de la pelicula como debe ser...
Por ej:

Película: tiburón
Actores:Pepe

Película: tiburón
Actores:Juanito

Cuando debería...


Película:Tiburón
Actores:Pepe, Juanito, etc

Les paso el script a ver si se dan cuenta que me estoy olvidando, miles de gracias por adelantado,

Código PHP:
<?php
$conexion
=mysql_connect("localhost","",""
  or  die(
"Problemas en la conexion");
mysql_select_db("peliculas",$conexion
  or  die(
"Problemas en la selección de la base de datos");


$registros=mysql_query("select titulo,tapa,detalle,clasificacion,duracion,director,genero,pais,actor
from peliculas as p
join director as d
on d.id=p.id_director
join actorxpeli as axp
on axp.peli_id=p.id
join actor as a
on a.id=axp.actor_id
join genero as g
on g.id=p.id_genero
join origen as o
on o.id=p.id_origen"
,$conexion) or
  die(
"Problemas en el select:".mysql_error());
while (
$reg=mysql_fetch_array($registros))

{
?><table width="100%" height="212" border="0">
  <tr>
    <td width="170" height="212"><? echo "<img src='".$reg['tapa']."'>";?></td>
  <td><? echo "Título:".$reg['titulo']."<br>";
  echo 
"Sinopsis:".$reg['detalle']."<br>";
  echo 
"Clasificación:";
  switch (
$reg['clasificacion']) {
    case 
1:echo "ATP";
           break;
    case 
2:echo "PM13";
           break;
    case 
3:echo "PM16";
           break;
    case 
4:echo "PM18";
           break;
  }
  echo 
"<br>";
  echo 
"Actor:".$reg['actor']."<br>";
  echo 
"Duración:".$reg['duracion']."<br>";
  echo 
"Director:".$reg['director']."<br>";
  echo 
"Genero:".$reg['genero']."<br>";
  echo 
"Origen:".$reg['pais']."<br>";?>
  </td>
  </tr>
   </table>
<?  echo "<br>";
  echo 
"<hr>";
}
mysql_close($conexion);
?>

Última edición por Claugtrs; 04/03/2008 a las 12:48 Razón: El titulo no era claro
  #2 (permalink)  
Antiguo 04/03/2008, 12:51
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Query mal hecha?

Seguramente vean que otras también están mal hechas si encuentran otros horrores estoy abierto a cualquier sugerencia ya que soy muy nuevo en esto
  #3 (permalink)  
Antiguo 04/03/2008, 15:27
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Re: Query mal hecha?

haz un bucle dentro del bucle de tiburones para buscar los actores

Código PHP:
$sql "select ide_pel, nom_pel from pelicula";
$pel mysql_query($sql);
while (
$rs_pel mysql_fetch_assoc($pel))
{
  echo 
$rs_pel['nom_pel'];
  echo 
"autores:";
  
$sql "select nom_aut from pelicula_vs_autor where ide_pel=".$rs_pel['ide_pel'];
  
$aut mysql_query($sql);
  while (
$rs_aut mysql_fetch_assoc($aut))
  {
    echo 
$rs_aut['nom_autor']."<br>";
  }

nota: no uso tus campos, por que tardaria un monton en hacer el bosquejo, pero ahi tiene la idea.. espero tengas suerte, nos vemos cuidate
  #4 (permalink)  
Antiguo 05/03/2008, 05:14
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Query mal hecha?

Gracias voy a probarlo y te aviso!!!

Última edición por Claugtrs; 05/03/2008 a las 05:14 Razón: arreglo de ortografía
  #5 (permalink)  
Antiguo 05/03/2008, 07:57
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Query mal hecha?

A ver hector2c si entendí
puse este bucle adentro y no funciona nada

Código PHP:
echo "<br>";
  echo 
"Actores:"
  
$registro2=mysql_query("select actor from actor as a 
        join actorxpeli as axp on axp.actor_id=a.id
        join peliculas as p on p.id=axp.peli_id
        where p.titulo="
.$reg['titulo'];)
  while (
$reg_act=mysql:fetch_assoc($registro2))
  (
      echo 
$reg_act['actor']. "<br>"
    
)
    )    
  echo 
"Duración:".$reg['duracion']."<br>"
Con tantas lineas ya no se si si estoy duplicando algo o que
  #6 (permalink)  
Antiguo 05/03/2008, 15:25
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Query mal hecha?

Puede que que tenga que usar fetch_array?
  #7 (permalink)  
Antiguo 06/03/2008, 09:54
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 2 meses
Puntos: 0
Problemas con bucle

Debe estar mal el bucle porque lo anulo y anda lo mas bien

Código PHP:
$registros=mysql_query("select id,titulo from peliculas",$conexion) or die("Problemas en el select:".mysql_error());
while (
$reg=mysql_fetch_array($registros))
{
echo 
"Título:".$reg['titulo']."<br>";
echo 
"Actores:";
$sql=mysql_query("select actor_id,peli_id from actorxpeli where peli_id=".$reg['id'];
while (
$reg_act=mysql_fetch_array($sql))
{
echo 
$reg_act['actor_id']."<br>";

}


También probé algo que me parecía mas cercano y tampoco

Código PHP:
$registros=mysql_query("select id,titulo from peliculas",$conexion) or die("Problemas en el select:".mysql_error());
while (
$reg=mysql_fetch_array($registros))
{
echo 
"Título:".$reg['titulo']."<br>";
echo 
"actores:";
$sql=mysql_query("select actor from actor as a
join actorxpeli as axp on axp.actor_id=a.id
where axp.peli_id="
.$reg['id'];
while (
$reg_act=mysql_fetch_array($sql))
{
echo 
$reg_act['actor']."<br>";
}

Tal vez sea demasiado simple y no lo sepa...ya no se que leer para despabilarme
Desde ya mil gracias por tanta paciencia, un abrazo foreros!!!

Última edición por Claugtrs; 06/03/2008 a las 10:11 Razón: Ser mas puntual con el problema
  #8 (permalink)  
Antiguo 08/03/2008, 10:32
 
Fecha de Ingreso: febrero-2004
Mensajes: 134
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Query mal hecha?

Al final le encontré la fallita y anda súper... a veces miramos pero no vemos x)

Código PHP:
where axp.peli_id=".$reg['id']); 
mil gracias a todos!!!

Última edición por Claugtrs; 08/03/2008 a las 10:36 Razón: data incompleta
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 18:41.