Foros del Web » Programando para Internet » PHP »

error al traer dato de otra tabla

Estas en el tema de error al traer dato de otra tabla en el foro de PHP en Foros del Web. Un saludo para todos, tengo una gran duda haber si alguien me puede guiar en como solucionarla. Estoy buscado en una tabla todos los username ...
  #1 (permalink)  
Antiguo 08/06/2012, 10:12
Avatar de andreshenao  
Fecha de Ingreso: enero-2009
Ubicación: Medellìn
Mensajes: 417
Antigüedad: 15 años, 2 meses
Puntos: 7
error al traer dato de otra tabla

Un saludo para todos, tengo una gran duda haber si alguien me puede guiar en como solucionarla.
Estoy buscado en una tabla todos los username que contengan una palabra $buscar que tengo en esa variable.
Hasta ahi muy bien, el problema radica es que la informacion que necesito mostrar que son varios campos nombre username id ciudad pais ubicacion esta bien pero tambien necesito avatar y este esta en otra tabla los primeros estan en la tabla users y el segundo en progreso.
y eso es lo que no logro mostrar.

Si alguien me puede guiar le agradezco ya que el campo avatar me sale vacio.

Cita:
<?php
include('inc/conexion.php');
$buscar = "hijo";
$sql = mysql_query("SELECT olduy_lingo_progreso.avatar,olduy_lingo_users.* FROM olduy_lingo_users,olduy_lingo_progreso WHERE username like '%$buscar%'" );
if ($row = mysql_fetch_array($sql)){
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<usuarios>';
while($row = mysql_fetch_array($sql)) {
echo '<usuario nombre="'.$row['name'].'" username="'.$row['username'].'" avatar="'.$row['olduy_lingo_progreso.avatar'].'" id="'.$row['id'].'" escuela="'.$row['school'].'" ubicacion="'.$row['city'].'" />';
}
echo '</usuarios>';
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>

resultado

<usuario nombre="Hijo6" username="hijo6" avatar="" id="236" escuela="MOUNTAIN VIEW ELEMENTARY SCHOOL" ubicacion="LAS VEGAS" />

<usuario nombre="Hijo10" username="hijo10" avatar="" id="237" escuela="MOUNTAIN VIEW ELEMENTARY SCHOOL" ubicacion="LAS VEGAS" />
__________________
-----------------
Hosting Medellin
Diseño web medellin
  #2 (permalink)  
Antiguo 08/06/2012, 10:17
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 10 meses
Puntos: 63
De acuerdo Respuesta: error al traer dato de otra tabla

El problema esta en la consulta. Porque estas llamando a dos tablas distintas y a la vez, sin estas tener ninguna relación. Para esto debes utilizar un INNER JOIN o LEFT JOIN según sea el caso utilizando como relación entre las tablas un campo en común entre ambas.

Lee esto, te puede ser de ayuda.

Y para la proxima, por favor utiliza la herramienta Highlight del menú. Es muy tedioso leer un código de esa forma. Tambien es recomendable seccionarlo en partes.

Espero haber ayudado. Saludos
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #3 (permalink)  
Antiguo 08/06/2012, 10:44
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: error al traer dato de otra tabla

Hola andreshenao.

Como bien Heiroon te esta faltando el JOIN entre tablas, presumo que la tabla donde esta el avatar tiene al menos 1 relacion a la tabla de usuarios.
Suponiendo que userid existe en la tabla olduy_lingo_progreso y que la tabla olduy_lingo_users tiene un campo llamado id.

Te quedaria algo asi.

Código PHP:
Ver original
  1. include('inc/conexion.php');
  2.     $buscar = "hijo";
  3.     $query = "SELECT olduy_lingo_progreso.avatar,
  4.                      olduy_lingo_users.*
  5.               FROM
  6.                 olduy_lingo_users JOIN olduy_lingo_progreso ON olduy_lingo_users.id = olduy_lingo_progreso.userid
  7.             WHERE username like '%$buscar%'"
  8.     $sql = mysql_query( $query );
  9.     if ($row = mysql_fetch_array($sql))
  10.     {
  11.         echo '<?xml version="1.0" encoding="utf-8"?>';
  12.         echo '<usuarios>';
  13.         while($row = mysql_fetch_array($sql))
  14.         {
  15.             echo '<usuario nombre="'.$row['name'].'" username="'.$row['username'].'" avatar="'.$row['olduy_lingo_progreso.avatar'].'" id="'.$row['id'].'" escuela="'.$row['school'].'" ubicacion="'.$row['city'].'" />';
  16.         }  
  17.         echo '</usuarios>';
  18.     }
  19.     else
  20.     {
  21.         echo "¡ No se ha encontrado ningún registro !";
  22.     }
  23. ?>


Opino lo mismo que Heiroon, te vendria bien pegarle una leida a ese link para refrescar o bien entender las relaciones entre tablas.

Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #4 (permalink)  
Antiguo 08/06/2012, 12:33
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 10 meses
Puntos: 63
De acuerdo Respuesta: error al traer dato de otra tabla

Igual tambien te recomiendo darnos un poquito de Karma!

Saludos
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #5 (permalink)  
Antiguo 08/06/2012, 15:25
Avatar de andreshenao  
Fecha de Ingreso: enero-2009
Ubicación: Medellìn
Mensajes: 417
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: error al traer dato de otra tabla

hola, muchas gracias por la respuesta estoy consultando el link que me enviaron y esta super.

Lo raro es que nada que me muestra el resultado del avatar y ya estan las relaciones.



Código HTML:
Ver original
  1. include('inc/conexion.php');
  2.     $buscar = "hijo";
  3.     $query = "SELECT olduy_lingo_progreso.avatar,
  4.                      olduy_lingo_users.*
  5.               FROM
  6.                 olduy_lingo_users JOIN olduy_lingo_progreso ON olduy_lingo_users.id = olduy_lingo_progreso.id_usuario
  7.             WHERE username like '%$buscar%'"
  8.     $sql = mysql_query( $query );
  9.     if ($row = mysql_fetch_array($sql))
  10.     {
  11.         echo '<?xml version="1.0" encoding="utf-8"?>';
  12.         echo '<usuarios>';
  13.         while($row = mysql_fetch_array($sql))
  14.         {
  15.             echo '<usuario nombre="'.$row['name'].'" username="'.$row['username'].'" avatar="'.$row['olduy_lingo_progreso.avatar'].'" id="'.$row['id'].'" escuela="'.$row['school'].'" ubicacion="'.$row['city'].'" />';
  16.         }  
  17.         echo '</usuarios>';
  18.     }
  19.     else
  20.     {
  21.         echo "¡ No se ha encontrado ningún registro !";
  22.     }
  23. ?>
__________________
-----------------
Hosting Medellin
Diseño web medellin
  #6 (permalink)  
Antiguo 09/06/2012, 12:02
Avatar de andreshenao  
Fecha de Ingreso: enero-2009
Ubicación: Medellìn
Mensajes: 417
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: error al traer dato de otra tabla

Coloco la solución del codigo, ademas le puede servir a alguien cuando desean generar un xml como resultado de una consulta.


Código HTML:
Ver original
  1. <?php
  2. include('conexion.php');
  3.  
  4.    $buscar = $_POST['buscar'];
  5.    $query = "SELECT olduy_lingo_progreso.avatar,
  6.                     olduy_lingo_users.*
  7.              FROM
  8.                olduy_lingo_users JOIN olduy_lingo_progreso ON olduy_lingo_users.id = olduy_lingo_progreso.id_usuario
  9.            WHERE username like '%$buscar%'";
  10.    $sql = mysql_query( $query );
  11.    if ($row = mysql_fetch_array($sql))
  12.    {
  13.        echo '<?xml version="1.0" encoding="utf-8"?>';
  14.         echo '<usuarios>';
  15.         while($row = mysql_num_rows($sql))
  16.         {
  17.             echo '<usuario nombre="'.$row['name'].'" username="'.$row['username'].'" avatar="'.$row['avatar'].'" id="'.$row['id'].'" escuela="'.$row['school'].'" ubicacion="'.$row['city'].'" />';
  18.         }  
  19.         echo '</usuarios>';
  20.     }
  21.     else
  22.     {
  23.         echo "¡ No se ha encontrado ningún registro !";
  24.     }
  25. ?>
Muchas gracias a el elgoncho99 y a Heiroon por sus valiosos aportes.
__________________
-----------------
Hosting Medellin
Diseño web medellin
  #7 (permalink)  
Antiguo 09/06/2012, 18:22
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: error al traer dato de otra tabla

Conicido con vos que le puede servir a alguien de donde es el web service ese y para que sirve?
__________________
http://www.latinium.com.ar/

Etiquetas: dato, mysql, registro, sql, tabla, variables, usuarios, tracker
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 10:12.