Foros del Web » Programando para Internet » PHP »

Consulta a dos tablas BD

Estas en el tema de Consulta a dos tablas BD en el foro de PHP en Foros del Web. Hola a todos, vereis tengo un problema con las consultas a las bases de datos. Necesito seleccionar datos de dos tablas distintas, por ejemplo: Comentario ...
  #1 (permalink)  
Antiguo 31/12/2011, 09:53
 
Fecha de Ingreso: octubre-2011
Ubicación: Barcelona
Mensajes: 115
Antigüedad: 12 años, 6 meses
Puntos: 4
Consulta a dos tablas BD

Hola a todos,
vereis tengo un problema con las consultas a las bases de datos.

Necesito seleccionar datos de dos tablas distintas, por ejemplo:

Comentario
Respuesta
Respuesta
Respuesta
Comentario
Respuesta
tengo algo asi:

Código PHP:
$consult = new modificarBD('comentarios''id_propietario'$perfil_de'*''ORDER BY id_comentario DESC');
        
$consult->consultar();
        while(
$rowmysql_fetch_array($registros)){
          echo 
"<article class='comentario'>";
          echo 
"<p>" $row['comentario']."</p>";
          echo 
"</article>";
        } 
y ahora debajo del "echo "<p>" . $row['comentario']."</p>";" me gustaría poner la respuesta, pero ya he probado poniendo otro bucle allí, pero no funciona.



Gracias!!!
  #2 (permalink)  
Antiguo 31/12/2011, 10:32
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Consulta a dos tablas BD

no hagas 2 bucles, en ese mismo while inserta la consulta de la segunda tabla e imprime el resultado algo asi lo haria

Código PHP:
Ver original
  1. $result=mysql_query("SELECT * FROM productos ORDER BY id_producto asc");
  2. while($row=mysql_fetch_row($result))
  3. {
  4. $result2=mysql_query("SELECT * FROM categoria where id_categoria = '".$row['4']."'");
  5. $ro=mysql_fetch_row($result2);
  6.  
  7. echo "
  8. <tr style='font-size:9px;'>
  9. <th>$row[1]</th>
  10. <th >$row[2] Bs.</th>
  11. <th>$row[3] </th>
  12. <th>$ro[1] </th>
  13. <th><img width=68 height=58  src='$url'></th>
  14. <th>
  15. <a href=editar.php?id=$row[0] title=editar><img src=001_45.gif width=18/></a>
  16. <a href=borrar.php?id=$row[0] title=borrar><img src=001_49.gif  width=18/></a>
  17.  
  18. </th>
  19. </tr>";


Espero te sirva.
  #3 (permalink)  
Antiguo 31/12/2011, 10:47
 
Fecha de Ingreso: octubre-2011
Ubicación: Barcelona
Mensajes: 115
Antigüedad: 12 años, 6 meses
Puntos: 4
Respuesta: Consulta a dos tablas BD

No me funciono.
He estado leyendo que en una misma instrucción SQL se pueden seleccionar varias tablas. Eso es cierto?

De ser así podría solucionar el problema.
  #4 (permalink)  
Antiguo 31/12/2011, 10:52
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Consulta a dos tablas BD

Si claro con INNER JOIN algo asi:

SELECT
u.us_nombre usuario,
b.bod_nombre bodega
FROM us2bod ub
INNER JOIN usuarios u ON ub.us_id = u.us_id
INNER JOIN bodegas b ON ub.bod_id = b.bod_id


MAs info:[URL="http://www.cristalab.com/tutoriales/consulta-sql-a-mas-de-dos-tablas-con-join-c77632l/"]http://www.cristalab.com/tutoriales/consulta-sql-a-mas-de-dos-tablas-con-join-c77632l/[/URL]
  #5 (permalink)  
Antiguo 31/12/2011, 11:00
 
Fecha de Ingreso: octubre-2011
Ubicación: Barcelona
Mensajes: 115
Antigüedad: 12 años, 6 meses
Puntos: 4
Respuesta: Consulta a dos tablas BD

uff no lo entiendo...

Yo tengo dos tablas:

comentarios y respuestas.

Tendria que hacer esto?

SELECT
u.id_comentario, u.comentario
b.id_comentario, b.respuesta
FROM comentarios respuestas
INNER JOIN id_comentario u, comentario u ON id_comentario b = respuesta b
  #6 (permalink)  
Antiguo 31/12/2011, 11:13
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Consulta a dos tablas BD

Bueno realmente no soy tan experto y tambien medio malo para explicar jeje pero imaginas estos casos de tablas:

USUARIOS
ID NOMBRE ORIGEN
1 JUAN COLIMA
2 PEDRO COLIMA
3 LUIS JALISCO
4 CARLOS GUADALAJARA

VENTAS
ID ARTICULO FECHA IDCLIENTE
1 Balon basketbol #5 2008-03-12 999
2 Raquetas de Ping Pong 2008-03-02 1
3 Guantes de portero XL 2008-02-20 999
4 Tenis nike Modelo 1275 2008-01-30 2
5 Rodilleras infantiles barbi 2008-01-11 3

Tienes la tabla ventas que tiene un campo llamado IDCLIENTE el cual corresponde con el campo ID de la tabla usuarios.

Entonces, probamos a hacer una consulta con un INNER JOIN que nos debiera devolver la unión de las tablas:

Código SQL:
Ver original
  1. SELECT * FROM ventas INNER JOIN usuarios ON ventas.idcliente=usuarios.id;

Te deberia devolver esta tabla:

D ARTICULO FECHA IDCLIENTE ID NOMBRE ORIGEN
2 Raquetas de Ping Pong 2008-03-02 1 1 JUAN COLIMA
4 Tenis nike Modelo 1275 2008-01-30 2 2 PEDRO COLIMA
5 Rodilleras infantiles barbi 2008-01-11 3 3 LUIS JALISCO


Nóta que NO aparecieron aquellos registros que NO tení*an una correspondencia, o sea que no apareció el usuario CARLOS que no tenía ninguna venta ni las ventas cuyo IDCLIENTE era 999.

espero ahora si mas o menos haberte ayudado.
  #7 (permalink)  
Antiguo 31/12/2011, 13:56
 
Fecha de Ingreso: octubre-2011
Ubicación: Barcelona
Mensajes: 115
Antigüedad: 12 años, 6 meses
Puntos: 4
Respuesta: Consulta a dos tablas BD

Okey ya lo he conseguido, muchas gracias!!!

Etiquetas: bd, mysql, registro, tabla, tablas
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:52.