Comunidad de diseño web y desarrollo en internet online

Problemas con bucle

Citar            
MensajeEscrito el 06 Mar 2008 04:42 pm
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


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


Código :

$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 :

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!!! :?

Por claugtrs

18 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Mar 2008 08:49 pm
a ver, segun lo que entiendo quieres algo como

Peli1
    Actor1
    Actor2
    Actor3

Peli2
    Actor2
    Actor3

Peli3
    Actor1
    Actor3

correcto.? o acaso es que el mysql te da algún error.?

Por cierto, tendrá algo que ver que al final de los mysql_query no cierres el paréntesis.?

Código :

$sql=mysql_query("select actor_id,peli_id from actorxpeli where
peli_id=".$reg['id']; //<-- Aqui

Código :

$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']; //<-- Aqui


Por ahora sigo "procesando" tu código :zzz:

Por mauril26

161 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Mar 2008 10:07 pm
Aca te dejo otro codigo... lo probas y me contas como te fue..!


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:<br>";
   
   $sql=mysql_query("select actor_id,peli_id from actorxpeli where peli_id='".$reg['id']."' group by peli_id");
   while ($reg_act=mysql_fetch_array($sql))
   {
      echo $reg_act['actor_id']."<br>";
   }
} 

?>


Saludos :cool:

Por jripper

228 de clabLevel

2 tutoriales

Genero:Masculino  

msie7
Citar            
MensajeEscrito el 06 Mar 2008 10:13 pm

jripper escribió:

Aca te dejo otro codigo... lo probas y me contas como te fue..!


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:<br>";
   
   $sql=mysql_query("select actor_id,peli_id from actorxpeli where peli_id='".$reg['id']."' group by peli_id");
   while ($reg_act=mysql_fetch_array($sql))
   {
      echo $reg_act['actor_id']."<br>";
   }
} 

?>


Saludos :cool:

esta consulta:

Código :

"select actor_id,peli_id from actorxpeli where peli_id='".$reg['id']."' group by peli_id"

va a devolver un solo actor y el necesita todos los de la pelicula

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 06 Mar 2008 10:23 pm

master_of_puppetz escribió:

jripper escribió:

Aca te dejo otro codigo... lo probas y me contas como te fue..!


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:<br>";
   
   $sql=mysql_query("select actor_id,peli_id from actorxpeli where peli_id='".$reg['id']."' group by peli_id");
   while ($reg_act=mysql_fetch_array($sql))
   {
      echo $reg_act['actor_id']."<br>";
   }
} 

?>


Saludos :cool:

esta consulta:

Código :

"select actor_id,peli_id from actorxpeli where peli_id='".$reg['id']."' group by peli_id"

va a devolver un solo actor y el necesita todos los de la pelicula


nou.... esa consulta lo que hara es traerme todo akel grupo de actores que tengan el mismo id de la pelicula... te lo digo porq ese script lo probe aca localmente... :cool:

Por jripper

228 de clabLevel

2 tutoriales

Genero:Masculino  

msie7
Citar            
MensajeEscrito el 06 Mar 2008 10:36 pm

jripper escribió:

master_of_puppetz escribió:

jripper escribió:

Aca te dejo otro codigo... lo probas y me contas como te fue..!


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:<br>";
   
   $sql=mysql_query("select actor_id,peli_id from actorxpeli where peli_id='".$reg['id']."' group by peli_id");
   while ($reg_act=mysql_fetch_array($sql))
   {
      echo $reg_act['actor_id']."<br>";
   }
} 

?>


Saludos :cool:

esta consulta:

Código :

"select actor_id,peli_id from actorxpeli where peli_id='".$reg['id']."' group by peli_id"

va a devolver un solo actor y el necesita todos los de la pelicula


nou.... esa consulta lo que hara es traerme todo akel grupo de actores que tengan el mismo id de la pelicula... te lo digo porq ese script lo probe aca localmente... :cool:

grupo de actores? :? , no, el group by va a hacer que solo te devuelva un registro, te va a "agrupar" los registros que coincidan con peli_id, al final, solo va a devolver un actor

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 06 Mar 2008 10:48 pm

master_of_puppetz escribió:

Aca te
grupo de actores? :? , no, el group by va a hacer que solo te devuelva un registro, te va a "agrupar" los registros que coincidan con peli_id, al final, solo va a devolver un actor


tenes razon.... no me habia fijando... jejejej disculpas...! :shock:

Por jripper

228 de clabLevel

2 tutoriales

Genero:Masculino  

msie7
Citar            
MensajeEscrito el 07 Mar 2008 12:17 am
estaban compitiendo por ser el rey de los quotes.? jajaja
ja
ja
ja


por cierto, si, el group by... (y)

Por mauril26

161 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Mar 2008 04:38 pm
Al final va este que anda súper

$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:<br>";

$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>";
}
}

mil gracias a todos!!!

Por claugtrs

18 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.