Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] duda en hacer consulta con multiple fields

Estas en el tema de duda en hacer consulta con multiple fields en el foro de PHP en Foros del Web. hola a todos es que ando tratando de poder hacer una consulta donde tengo el id de una tabla repetido ejemplo tab.1 id|id_user_envia|id_user_recive tab.2 id|user|pass|status ...
  #1 (permalink)  
Antiguo 25/04/2016, 20:18
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
duda en hacer consulta con multiple fields

hola a todos es que ando tratando de poder hacer una consulta donde tengo el id de una tabla repetido

ejemplo

tab.1
id|id_user_envia|id_user_recive

tab.2
id|user|pass|status

y quiero hacer que busque el user del id_user_envia y id_user_recive

como esto seria posible
  #2 (permalink)  
Antiguo 25/04/2016, 21:10
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: duda en hacer consulta con multiple fields

asumiendo que usas mysql
http://www.w3schools.com/php/func_mysqli_query.asp

la consulta seria:
Código PHP:
Ver original
  1. $query = mysqli_query($con,"SELECT user,id_user_envia,id_user_recibe from tab1,tab2 where tab1.id=tab2.id ");//agregar condicion ej:(where user='juanito')ejem2:(where id_user_envia=1)
  2.  
  3. while($fila = mysqli_fetch_assoc($query)){
  4. echo $fila['user'].' '.$fila['id_user_envia'];//etc.
  5. }
  #3 (permalink)  
Antiguo 27/04/2016, 19:10
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: duda en hacer consulta con multiple fields

tabla bitacora:



tabla usuario:


mi consulta php

Código PHP:
Ver original
  1. $q_users=mysql_query("SELECT
  2. bitacora.*,
  3. usuario.usuario AS usuario_envia,
  4. usuario.usuario AS usuario_recive,
  5. FROM
  6. bitacora
  7. LEFT JOIN usuario ON bitacora.id_envia=usuario.id");
  8. while ($res=mysql_fetch_array($q_users)) {
  9.  
  10. echo "Usuario: ".$res['usuario_envia']."".$res['usuario_recive'];
  11.  
  12. }

pero solo muestra usuario_envia no muestra usuario_recive como puedo hacer que funcione
  #4 (permalink)  
Antiguo 27/04/2016, 19:46
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: duda en hacer consulta con multiple fields

prueba asi a ver:

Código PHP:
Ver original
  1. Class Bitacora{
  2.     public $db;//Esta es la variable de conexion que uses
  3.  
  4.     public function __construct($db){
  5.         $this->con = $db;
  6.     }
  7.  
  8.     //Buscamos el usuario en funcion de la id enviada
  9.     public function bit($X){
  10.         $a = $this->con->query("SELECT id,usuario FROM usuario WHERE id = '$X'")
  11.         $row = $a->fetch_assoc();
  12.  
  13.         if($a !== false){
  14.             return $row['usuario'];
  15.         }else{
  16.             return false;
  17.         }
  18.  
  19.     }
  20.  
  21.     //Listamos la bitacora
  22.     public function lista(){
  23.         $a = $this->con->query("SELECT * FROM bitacora");
  24.  
  25.         if($a !== false){
  26.             return $a;
  27.         }else{
  28.             return false
  29.         }
  30.     }
  31.  
  32. }
  33.  
  34. //iniciamos una instancia a la clase Bitacora y enviamos la variable de conexion
  35. $dat = new Bitacora($db);
  36.  
  37. //Cargamos a la variable la respuesta
  38. $bita = $dat->lista();
  39.  
  40. //si hay registros los recorremos
  41. if($bita !== false){
  42.     while($row = $bita->fetch_array()){
  43.  
  44.         //enviamos la id a la funcion para que nos devuelba el nombre del usuario
  45.         echo "Usuario: ".$dat->bit($row['id_envia'])." Recibe: ".$dat->bit($row['id_recibe'])."<br>";
  46.  
  47.     }
  48. }

quizá hay algunos pelones en el codigo, pero es la base. Saludos
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 27/04/2016, 20:31
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: duda en hacer consulta con multiple fields

gracias @xfxstudios

ya encontré como hacerlo aquí dejo la solución por si alguno la necesita

Código PHP:
Ver original
  1. $q_users=mysql_query("SELECT
  2. b.*,
  3. envia.usuario AS usuario_envia,
  4. recive.usuario AS usuario_recive,
  5. FROM
  6. bitacora b
  7. LEFT JOIN usuario envia ON b.id_envia=envia.id
  8. LEFT JOIN usuario recive ON b.id_envia=recive.id");
  9. while ($res=mysql_fetch_array($q_users)) {
  10.  
  11. echo "Usuario: ".$res['usuario_envia']."".$res['usuario_recive'];
  12.  
  13. }
  #6 (permalink)  
Antiguo 27/04/2016, 20:46
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: duda en hacer consulta con multiple fields

recuerda utiliza mysqli ya que mysql esta descontinuado y no va a tener soporte en las nuevas verisones de php
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 27/04/2016, 21:20
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: duda en hacer consulta con multiple fields

ok mucha gracias

Etiquetas: mysql
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 16:06.