Foros del Web » Programando para Internet » PHP »

Cual es mi error en mi consulta

Estas en el tema de Cual es mi error en mi consulta en el foro de PHP en Foros del Web. Hola a todos tengo tres tablas Tabla1 idusuario1 Nombre AP AM Tabla2 idusuario2 Nombre AP AM Tabla3 autor comentario Y he hecho la siguiente consulta ...
  #1 (permalink)  
Antiguo 12/01/2012, 19:09
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Cual es mi error en mi consulta

Hola a todos tengo tres tablas

Tabla1
idusuario1
Nombre
AP
AM


Tabla2
idusuario2
Nombre
AP
AM


Tabla3
autor
comentario

Y he hecho la siguiente consulta para obtener los datos del usuario (Nombre, AP..)

<?php $query_id2 =sprintf("SELECT * FROM Tabla3,Tabla2,Tabla1 Where Tabla3.autor=Tabla2.idusuario2 AND Tabla3.autor=Tabla1.idusuario1 AND idforo = %s ORDER by fecha DESC ", GetSQLValueString($colname_id, "text"));

Creo que la logica esta bien pero no he logrado mostrar ningun dato :S

en cambio si solo dejo la consulta asi se me muestra
<?php $query_id2 =sprintf("SELECT * FROM Tabla3,Tabla2 Where Tabla3.autor=Tabla2.idusuario2 AND idforo = %s ORDER by fecha DESC ", GetSQLValueString($colname_id, "text"));

Cual es mi error
  #2 (permalink)  
Antiguo 13/01/2012, 06:36
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Cual es mi error en mi consulta

sinceramente debes de aplicar semántica, es muy difícil deducir que hace tabla1, tabla2, tablax, que es muy diferente si tuviesen nombres más semánticos como: usuario, autor, comentario, etc.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 13/01/2012, 07:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Cual es mi error en mi consulta

Hola, aparte de lo que te ha dicho maycolalvarez, estas poniendo una condicion a un campo llamado idforo que no existe, tambien habría que ver el campo autor como es, ya que lo comparar con un campo id.

Por otro lado, la tabla 1 y la dos las puedes unir y cada registro será un usuario, de esta forma, solo tendras que comparar una tabla con la tercera, etc etc etc.

Un saludo.
  #4 (permalink)  
Antiguo 13/01/2012, 11:18
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Cual es mi error en mi consulta

Gracias a los dos mis tablas obvio no se llaman así solo puse el ejemplo de como serían ammm idforo en realidad si existe lo omití perdón...
no puedo unir tablas ya que son tipos de usuario distinto y están en diferentes tablas. gracias de todas formas
  #5 (permalink)  
Antiguo 13/01/2012, 11:45
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Cual es mi error en mi consulta

Para que sea mas entendible pondre las tablas como son
alumnos
idalumno
nombre
ap
am
....


docentes
iddocente
nombre
ap
am
...

comentarios
id
idforo
autor
...

Las tablas alumnos y docentes varian en campos por eso tampoco puedo hacer UNION SELECT

MI consulta esta asi

<?php $query_id2 =sprintf("SELECT * FROM comentarios,docentes, alumnos Where comentarios.autor=docentes.iddocente AND comentarios.autor=alumnos.idalumno AND idforo = %s ORDER by fecha DESC ", GetSQLValueString($colname_id, "text"));

Mi consulta asi no muestra nada en cambio asi
<?php $query_id2 =sprintf("SELECT * FROM comentarios,docentes Where comentarios.autor=docentes.iddocente AND idforo = %s ORDER by fecha DESC ", GetSQLValueString($colname_id, "text"));

Muestra los comentarios de los docentes
  #6 (permalink)  
Antiguo 13/01/2012, 11:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Cual es mi error en mi consulta

El campo autor de comentarios imagino que será tipo número, no?
  #7 (permalink)  
Antiguo 13/01/2012, 11:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Cual es mi error en mi consulta

Bueno, suponiendo que el campo autor sea de tipo numerico y sin entender que, si quieres mostrar los comentarios de los docentes (campo que por cierto no existe en tu planteamiento) no se para que quieres inclur la tabla alumnos, esto lo he probado y funciona (dando por hecho que se podrían hacer muchos arreglos).

SELECT comentarios.autor, alumnos.nombre, docentes.nombre
FROM (comentarios INNER JOIN docentes ON comentarios.autor = docentes.iddocente) INNER JOIN alumnos ON comentarios.autor = alumnos.idalumno;
  #8 (permalink)  
Antiguo 13/01/2012, 12:52
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Cual es mi error en mi consulta

Cita:
Iniciado por AitorLopez Ver Mensaje
Bueno, suponiendo que el campo autor sea de tipo numerico y sin entender que, si quieres mostrar los comentarios de los docentes (campo que por cierto no existe en tu planteamiento) no se para que quieres inclur la tabla alumnos, esto lo he probado y funciona (dando por hecho que se podrían hacer muchos arreglos).

SELECT comentarios.autor, alumnos.nombre, docentes.nombre
FROM (comentarios INNER JOIN docentes ON comentarios.autor = docentes.iddocente) INNER JOIN alumnos ON comentarios.autor = alumnos.idalumno;
Gracias por tu respuesta aun asi no me muestra nada :(
  #9 (permalink)  
Antiguo 13/01/2012, 12:58
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Cual es mi error en mi consulta

Hola.

Si aún así no te muestra nada, es porque la estructura de la bd que estas exponiendo en este hilo no es correcta tal y como te he indicado varias veces, es decir, en las consultas que has escrito, has hecho mencion a campos que luego no estaban en la estructura de la bd, por ejemplo.

La prueba es la siguiente, haz una bd con las tres tablas que te he puesto y con esos campos. Los id autonumericos, el campo autor numerico, ponles unos datos y ejecuta la consulta, verás como funciona.

Cuando digo ponle unos datos, ponselos con sentido, es decir, si dices que el docente 1 tiene el comentario "hola que pasa", en la tabla comentarios debe aparecer ese comentario con su id, y ese id será el número que tendrá que ir en la tabla docentes en el campo numerico que se relaciona con la tabla comentarios.

Es que yo creo que es un problema de concepto, es decir, para entender esto que te he puesto ahora debes tener unos conocimientos básicos sobre bd, no se si es el caso.

Etiquetas: sql, 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 22:23.