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

Listar todos los datos segun un parametro

Estas en el tema de Listar todos los datos segun un parametro en el foro de Mysql en Foros del Web. Hola a todos; Quiero listar todos los resultados de una tabla donde aparezca un parametro que envio por URL La consulta que envio es esta ...
  #1 (permalink)  
Antiguo 27/07/2011, 07:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Listar todos los datos segun un parametro

Hola a todos;
Quiero listar todos los resultados de una tabla donde aparezca un parametro que envio por URL

La consulta que envio es esta
Código PHP:
SELECT *, DATE_FORMAT(fecha_correo'%d-%m-%Y'fechita,  DATE_FORMAT(fecha_correo'%H:%i:%s'hora FROM correousuarios WHERE codigo_mensaje='$elco'  AND idrecibe id_usuarios AND idenvia id_usuarios ORDER BY id_correo DESC 
Hay 3 registros que tienen el valor de $elco pero no me muestra ninguno.

En la tabla tengo estos campos.

idenvia (corresponde al id del usuario) idrecibe (corresponde al id del usuario) codigo (corresponde al codigo que envio por URL)

Pero no me sale ningun registro.

Si quito AND idrecibe = id_usuarios AND idenvia = id_usuarios me salen los mensajes pero con cada uno de los usuarios.

Como tendria que hacer la consulta para que solo me salieran esos mensajes y que por supuesto saliera el nombre del usuario junto a su mensaje?

Un saludo
  #2 (permalink)  
Antiguo 27/07/2011, 07:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Listar todos los datos segun un parametro

Hay un error de lógica. Tu consulta pide que te devuelva los registros donde un usuario se envió un email a si mismo:
Código MySQL:
Ver original
  1.      *,
  2.      DATE_FORMAT(fecha_correo, '%d-%m-%Y') fechita,  
  3.      DATE_FORMAT(fecha_correo, '%H:%i:%s') hora
  4.      correo, usuarios
  5.      codigo_mensaje='$elco'  
  6.      AND
  7.      idrecibe = id_usuarios
  8.      AND
  9.      idenvia = id_usuarios
  10. ORDER BY id_correo DESC
Eso lo puedes observar en el bloque
Código MySQL:
Ver original
  1. idrecibe = id_usuarios
  2.      AND
  3.      idenvia = id_usuarios

Para que la consulta sea funcional debes llamar dos veces a la misma tabla, pero con INNER JOIN y alias:
Código MySQL:
Ver original
  1.      *,
  2.      DATE_FORMAT(fecha_correo, '%d-%m-%Y') fechita,  
  3.      DATE_FORMAT(fecha_correo, '%H:%i:%s') hora
  4.      correo C
  5.      INNER JOIN usuarios U1 ON C.idrecibe = U1.id_usuarios
  6.      INNER JOIN usuarios U2 ON C.idrecibe = U2.id_usuarios
  7.      codigo_mensaje='$elco'  
  8. ORDER BY id_correo DESC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campos, listar, parametro, registros, select, 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 06:17.