Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 21-jul-2008, 13:05   #1 (permalink)
RJD
RJD ha deshabilitado el karma
 
Fecha de Ingreso: enero-2006
Mensajes: 44
Mezclar tablas?

Cómo podría mostrar dos tablas de una base de datos Mysql que tienen diferentes campos?

Ejemplo:
Tabla 1 -> nombres, apellidos, ciudad
Tabla 2 -> mote, país, ocupación

Y ordenarlo según mote y nombre, es decir que aparezcan mezcladas las dos tablas

Gracias!
RJD está desconectado   Responder Citando
Antiguo 21-jul-2008, 13:56   #2 (permalink)
Mort20 ha deshabilitado el karma
 
Avatar de Mort20
 
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 70
Respuesta: Mezclar tablas?

Deberías mirarte la parte de los "join" en un manual de MySQL.
Pero concretamente en tu caso el código sería algo así:
Código:
SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre;
Puedes añadir asc o desc al final para ordenar la agrupación, también puedes ver distinct para no obtener repeticiones en la salida.
Mort20 está desconectado   Responder Citando
Antiguo 21-jul-2008, 19:04   #3 (permalink)
RJD
RJD ha deshabilitado el karma
 
Fecha de Ingreso: enero-2006
Mensajes: 44
Respuesta: Mezclar tablas?

Muchas gracias,

pero entonces ahora, como hago para ordenar la informacion extraida de la BD. Cómo debería plantear el siguiente código? que hay mal?:

<? $result = mysql_query("SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre ASC");
while($r=mysql_fetch_array($result))
{
$nombre = $r['nombre'];
$ocupacion = $r['ocupacion'];
$pais = $r['pais'];
...
...
etc, etc


Y después de eso, como puedo decir, si el que toca enseñar ahora es de la tabla 1, az esto:
- Nombre: $nombre
- Apellidos: $ apellidos
etc

Y si es de la tabla 2:
-Mote: $mote
-Ocupacion: $ocupacion
etc





No se si me explico correctamente, espero que sí.
Muchas gracias
RJD está desconectado   Responder Citando
Antiguo 22-jul-2008, 05:05   #4 (permalink)
RJD
RJD ha deshabilitado el karma
 
Fecha de Ingreso: enero-2006
Mensajes: 44
Respuesta: Mezclar tablas?

Alguien me ayuda plis?
RJD está desconectado   Responder Citando
Antiguo 22-jul-2008, 05:35   #5 (permalink)
Anastasiaphp ha deshabilitado el karma
 
Avatar de Anastasiaphp
 
Fecha de Ingreso: junio-2006
Mensajes: 100
Respuesta: Mezclar tablas?

Creo que tienes que poner:

ORDER BY uno.nombre ASC
Anastasiaphp está desconectado   Responder Citando
Antiguo 22-jul-2008, 05:36   #6 (permalink)
Anastasiaphp ha deshabilitado el karma
 
Avatar de Anastasiaphp
 
Fecha de Ingreso: junio-2006
Mensajes: 100
Respuesta: Mezclar tablas?

Es decir:

$result = mysql_query("SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre ORDER BY uno.nombre ASC");

Si lo quieres ordenar por el nombre.
Anastasiaphp está desconectado   Responder Citando
Antiguo 22-jul-2008, 06:05   #7 (permalink)
RJD
RJD ha deshabilitado el karma
 
Fecha de Ingreso: enero-2006
Mensajes: 44
Respuesta: Mezclar tablas?

No se si me he explicado bien, lo que pretendo es hacer algo así, pero no se como:

Código PHP:
<? $result mysql_query("SELECT * FROM Tabla1 AS uno JOIN Tabla2 AS dos GROUP BY dos.mote,uno.nombre ASC");
while(
$r=mysql_fetch_array($result))
{
$nombre $r['nombre'];
$ocupacion $r['ocupacion'];
$pais $r['pais'];
...
...
etcetc


Y después de eso
como puedo decirsi el que toca enseñar ahora es de la tabla 1az esto:
Nombre$nombre
Apellidos: $ apellidos
etc

Y si es de la tabla 2
:
-
Mote$mote
-Ocupacion$ocupacion
etc
RJD está desconectado   Responder Citando
Antiguo 22-jul-2008, 12:52   #8 (permalink)
Mort20 ha deshabilitado el karma
 
Avatar de Mort20
 
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 70
Respuesta: Mezclar tablas?

Creo que no has acabado de entender el resultado de esa consulta: el resultado son filas ordenadas por mote - en caso de empate se mira el nombre - en las cuales hay TODOS los campos de esa "prioridad" de la Tabla1 y Tabla2, así que en tu $r tienes tanto $r['nombres'] como $r['mote'], así como los demás.
Sólo coge el que te interese en cada momento, sea de Tabla1 o Tabla2, ya que en $r tienes a ambos con los nombres de tu BD. En la siguiente pasada del bucle vuelves a tener lo mismo, sólo que con el siguiente orden de prioridad, es decir, el siguiente resultado de la ordenación por mote y nombre.

De todas formas, yo sólo puse una consulta que creo que es lo que buscabas, si no lo has comprobado compruebalo en una consola MySQL insertando esa consulta directamente y viendo el resultado, y en todo caso si no entiendes estos temas de consultas que vas a usar, es mejor que mires en el manual y lo comprendas, que si no puedes tener algún problema después.
Mort20 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 04:42.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93