Foros del Web » Programando para Internet » PHP »

Duda sobre SELECT

Estas en el tema de Duda sobre SELECT en el foro de PHP en Foros del Web. Hola, tengo la siguiente duda. Tengo estas 2 tablas: usuarios: Cita: id ------------ usuario 1 -------------juan 2 -------------ana objetos: Cita: id_poseedor-------------tipo_objeto 1----------------------------2 2----------------------------1 2----------------------------1 2----------------------------1 ...
  #1 (permalink)  
Antiguo 18/01/2013, 09:44
 
Fecha de Ingreso: junio-2011
Mensajes: 92
Antigüedad: 13 años, 5 meses
Puntos: 3
Duda sobre SELECT

Hola, tengo la siguiente duda.
Tengo estas 2 tablas:
usuarios:
Cita:
id ------------ usuario
1 -------------juan
2 -------------ana
objetos:
Cita:
id_poseedor-------------tipo_objeto
1----------------------------2
2----------------------------1
2----------------------------1
2----------------------------1
1----------------------------1
2----------------------------2

Lo que quiero es hacer un SELECT que, suponiendo que el ususuario con id 2 tenga algún objeto, diga el número.
Por ejemplo, en este caso encontraría 4 registros en las que id_poseedor es 2 y 2 registros en el que id poseedor es 1.

Lo que quiero es que se muestre así (de + a -):
Ana - 4 objetos.
Juan - 2 objetos.

Hace tiempo leí algo de eso pero ahora no lo encuentro, gracias.
  #2 (permalink)  
Antiguo 18/01/2013, 09:56
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 16 años, 2 meses
Puntos: 7
Respuesta: Duda sobre SELECT

Cita:
Iniciado por Kilin Ver Mensaje
Hola, tengo la siguiente duda.
Tengo estas 2 tablas:
usuarios:

objetos:



Lo que quiero es hacer un SELECT que, suponiendo que el ususuario con id 2 tenga algún objeto, diga el número.
Por ejemplo, en este caso encontraría 4 registros en las que id_poseedor es 2 y 2 registros en el que id poseedor es 1.

Lo que quiero es que se muestre así (de + a -):
Ana - 4 objetos.
Juan - 2 objetos.

Hace tiempo leí algo de eso pero ahora no lo encuentro, gracias.
tienes que hacer un inner join entre esas 2 tablas amigo que seria mas o menos asi :

select u.id,
u.usuario,
o.tipo_objeto
from usuarios u
inner join objetos o
on u.id = o.id_poseedor
where u.id="numero del id"
order by o.tipo_objeto

Si tengo algún error, por favor me corrigen, también estoy aprendiendo.
  #3 (permalink)  
Antiguo 18/01/2013, 11:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Duda sobre SELECT

Código MySQL:
Ver original
  1.    u.usuario,
  2.   SUM(o.tipo_objeto) objetos
  3.  FROM usuarios u
  4.  INNER JOIN objetos o ON o.id_poseedor = u.id
  5.  GROUP BY o.id_poseedor
  #4 (permalink)  
Antiguo 18/01/2013, 11:56
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Duda sobre SELECT

Le faltaría el ORDER BY tipo_objeto y ya queda.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 18/01/2013, 14:00
 
Fecha de Ingreso: junio-2011
Mensajes: 92
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Duda sobre SELECT

Gracias.
He puesto esto pero no me funciona:
Código:
$ssql = mysql_query('SELECT
   u.usuario,
  SUM(o.tipo_objeto) usuarios
 FROM usuarios u
 INNER JOIN objetos o ON o.id_poseedor = u.usuario
 GROUP BY o.id_poseedor ORDER BY o.tipo_objeto');
 while($rep = mysql_fetch_assoc($ssql){
 echo $rep['u.usuario'].' tiene '.$rep['SUM(o.tipo_objeto)'].'<br>';
 }
Me da error en el while.
  #6 (permalink)  
Antiguo 18/01/2013, 14:12
Avatar de RastaMart  
Fecha de Ingreso: noviembre-2006
Mensajes: 91
Antigüedad: 18 años
Puntos: 3
Respuesta: Duda sobre SELECT

Siento que el error esta por esta linea

echo $rep['u.usuario'].' tiene '.$rep['SUM(o.tipo_objeto)'].'<br>';

debe queda r asi :

echo $rep['u.usuario'].' tiene '.$rep['usuarios'].'<br>';
  #7 (permalink)  
Antiguo 18/01/2013, 14:20
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Duda sobre SELECT

Te falta cerrar el while, debería ser así:

Código PHP:
Ver original
  1. $ssql = mysql_query('SELECT
  2.   u.usuario,
  3.  SUM(o.tipo_objeto) objetos
  4. FROM usuarios u
  5. INNER JOIN objetos o ON o.id_poseedor = u.id
  6. GROUP BY o.id_poseedor ORDER BY tipo_objeto '
  7. ) or die(mysql_error());
  8.  
  9. while ($rep = mysql_fetch_assoc($ssql)) {
  10.     echo $rep['usuario'] . ' tiene ' . $rep['objetos'] . '<br>';
  11. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: registro, select, tabla, usuarios
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 12:08.