Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error en el query

Estas en el tema de Error en el query en el foro de Mysql en Foros del Web. Hola me gustaria que me ayudaran con la siguiente consulta: Tengo una base de datos con 3 tablas. Usuarios, fotos, inmuebles, para mostrar resultados uso ...
  #1 (permalink)  
Antiguo 11/02/2013, 11:27
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Error en el query

Hola me gustaria que me ayudaran con la siguiente consulta:

Tengo una base de datos con 3 tablas. Usuarios, fotos, inmuebles,

para mostrar resultados uso el siguiente query usando php mysql ,

en la tabla usuarios tengo(id_user,codigo,nombre,apellido,email)

en la tabla inmuebles tengo (id_inmueble,codigo,tipo,precio,metros,ubicacion)

despues que he realizado las conexiones a la base de datos, hago la consulta:.

Código MySQL:
Ver original
  1. SELECT id_inmueble
  2. FROM inmuebles,usuarios
  3. WHERE inmuebles.codigo = usuarios.codigo
no me toma el id_inmueble correcto por que sera??

se ejecuta correctamente el query pero no toma el dato correcto!!
Agradezco cualquier ayuda

Última edición por gnzsoloyo; 12/02/2013 a las 05:25 Razón: Código de programacion no permitido en los foros de BBDD.
  #2 (permalink)  
Antiguo 11/02/2013, 12:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Error en el query

Porque no has relacionado bien. Deberías tener una tabla inmueblesusuarios, aunque sí solo un usuario va a tener el inmueble te bastará con un campo en la tabla inmuebles, aunque no creo que sea así. Mejor una tabla inmueblesusuarios con los campos codigoinmuebleusuario, codigoinmueble, codigousuario, y luego relacionas con las otras dos tablas uniendo por esos campos. Tan sencillo como eso. esta es la idea
Código MySQL:
Ver original
  1. SELECT inm.codigo, inm.otrocampo, u.campo1, u.campo2
  2.  FROM inmuebles inm
  3.  INNER JOIN inmueblesusuarios inmusu
  4. ON inm.codigo = inmusu.codigoinmueble
  5.  INNER JOIN usuarios u
  6. ON inmusu.codigousuario = u.codigo
  #3 (permalink)  
Antiguo 11/02/2013, 13:41
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Error en el query

Jurena gracias por contestar me imagine que tenia mal el diseno de las tablas. pero no te consigo entender exactamente. te explico el problema

Cada ususario tiene un unico codigo usuario y cada usuario puede tener varios inmuebles

ahora el mismo inmueble no puede tener varios usuarios solo tiene un usuario
referenciado por el campo codigo. Por ejemplo las tablas se ven asi

usuarios:
Id_user, codigo, Nombre, Apellido, email
001, 800, Carlos, Marquez, [email protected]

Inmuebles:
Id_inmueble,codigo,tipo,precio
2, 800, Apartamento, 200
3, 800, Casa, 450
4, 800, Apartamento, 600

Gracis por la paciencia!!
  #4 (permalink)  
Antiguo 11/02/2013, 14:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Error en el query

Código MySQL:
Ver original
  1. inmuebles.id_inmueble,
  2. usuarios.nombre,
  3. usuarios.apellido
  4.  FROM inmuebles
  5.  INNER JOIN usuarios
  6.  ON inmuebles.codigo = usuarios.codigo

esta consulta te traerá todos los inmuebles que tengan relacionado un usuario, y tal como lo estás devolviendo tendrás todos los números. Yo te he puesto más datos.
Si quieres buscar los inmuebles relacionados con un usuario en concreto, deberías añadir al final
Código MySQL:
Ver original
  1. WHERE inmuebles.codigo = @variablecodigousuario
Deberías tener indexado el campo codigo de inmuebles y de usuario. Y en el caso de que ese codigo de usuarios fuera único, que debería serlo, te sobra el campo id_user. Es decir, el Primary Key debería de ser ese campo codigo de usuarios.

Última edición por jurena; 11/02/2013 a las 14:55
  #5 (permalink)  
Antiguo 11/02/2013, 21:20
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Galeria dinamica de imagenes

Gracias me ayudo bastante las instrucciones del query tambien dividi la base de datos en mas tablas 1 usuarios (cod_usuario,nombre,apellido,telefono)
2 inmuebles (cod_inm,tipo,precio,ubicacion)
3 usuario_inm (cod_usuario,cod_inm)

ahora estoy intentando colocar las imagenes que cargo el usuario y que estan en una tabla fotos(id_foto, nombre_img, imagen) para ello uso otra tabla llamada

inmuebles_fotos(id_foto,id_inm) uso esta instruccion para mostrar las imagenes

Código MySQL:
Ver original
  1. FROM fotos INNER JOIN inmuebles_fotos ON fotos.id_foto = inmuebles_fotos.id_foto
  2. WHERE inmuebles_fotos.id_inmueble=$id
dentro del codigo html he colocado la siguiente instruccion php dentro de una lista

Cita:
Editado: No se permiten códigos de programacion en los foros de BBDD.
el codigo del archivo get2.php es asi:
Código MySQL:
Ver original
  1. SELECT * FROM fotos INNER JOIN inmuebles_fotos ON fotos.id_foto = inmuebles_fotos.id_foto
  2. WHERE inmuebles_fotos.id_foto=$id
lo hace casi todo bien solo que de 3 imagenes muestra las ultimas 2 cargadas, es decir le falta el primer registro por mostrar.

Alguna ayuda por favor?

Última edición por gnzsoloyo; 12/02/2013 a las 05:28 Razón: Códigos de programación no permitidos en los foros de BBDD.
  #6 (permalink)  
Antiguo 12/02/2013, 09:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Error en el query

Creo que la tabla inmuebles_fotos no es necesaria, puesto que una foto lo puede ser de un único inmueble. Si añades el id_inm ya tendrás todo y se haría innecesaria la tabla inmuebles_fotos
fotos(id_foto, nombre_img, imagen, id_inm)
Pueden ocurrir dos cosas: o que no tienes los datos bien, porque no has relacionado correctamente, o al procesarlo con el programa y recorrer los resultados para mostrarlos has hecho algo mal.
El código de programación no está permitido en este foro. En ocasiones es la causa del problema y deberías pedir ayuda en el foro de programación. Allí sí puedes escribir ese código.
Pero primero comprueba que la consulta devuelve dos registros y no tres, y no lo hagas en el script procesado, sino como consulta sin más a la base de datos, con datos absolutos, sin variables.

Etiquetas: php, query, resultados, select, sql, tabla
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 04:43.