Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   Duda con consultas y relaciones 1 a muchos. (http://www.forosdelweb.com/f21/duda-con-consultas-relaciones-1-muchos-539902/)

Fridureiks 10/12/2007 20:36

Duda con consultas y relaciones 1 a muchos.
 
A ver, me resulta complicado explicar esto sin meter PHP de por medio, pero lo voy a intentar.

Tengo dos tablas, noticias e imagenes.

Noticias
id_noticia
titulo
contenido

Imagenes
id_imagen
id_noticia
imagen

Donde las imagenes de la tabla Imagenes se relacionan con las noticias a traves del campo id_noticia. Y si, puede haber mas de una imagen por noticia.

Si debo buscar una noticia y todas sus imagenes lo puedo hacer sencillamente buscando primero la noticia y con su id luego buscar sus imagenes (sencillo pero no se si correcto). Ahora, si tengo que buscar (y mostrar) todas las noticias con todas sus imagenes, como hago? con una consulta busco todas las noticias y luego hago una consulta por cada noticia para buscar las imagenes?

Es una duda que tengo dando vueltas hace algun tiempo y no tengo claro cual es la mejor manera de resolverla.

Agradezco cualquier pista :-)


Saludos

girion 11/12/2007 02:13

Re: Duda con consultas y relaciones 1 a muchos.
 
holaps! tienes ke hacer un group by

ejemplo: select noticias.id_noticia, id_imagen from noticias, imagenes where noticias.id_noticia=imagenes.id_noticia group by noticias.id_noticia,id_imagen

mas o menos asi, mirate lo del group by

el problema es ke te saldra la noticia repetida si tienes varias imagenes por noticias.

otra opcion es hacer dos selects, una para seleccionar las noticias, i luego otra para seleccionar las imagenes de la noticia ke vas a mosttrar

Fridureiks 11/12/2007 07:01

Re: Duda con consultas y relaciones 1 a muchos.
 
Gracias girion, habia visto ese tipo de consultas pero el problema era exactamente ese, si hay mas de una imagen, la noticia sale repetida tantas veces como cantidad de imagenes tenga.

La segunda opcion funciona con una noticia, pero con varias? no serian muchas consultas?


Gracias nuevamente :-)

girion 11/12/2007 07:17

Re: Duda con consultas y relaciones 1 a muchos.
 
hombre serian muxas consultas porque ten en cuenta que por cada noticia harias una consulta a la tabla de imagenes

si tienes 10000 noticias seria una consulta para las noticias i 10000 consultas para las imagenes
serian bastantes consultas...

otra opcion ke estoy makinando seria..

hacer una consulta para todas las notticias
i luego otra para agrupar imagenes

select * from noticias
select noticias.id_noticia, id_imagen from noticias, imagenes where noticias.id_noticia=imagenes.id_noticia group by noticias.id_noticia,id_imagen

i luego hacer un bucle ke recorra el segundo objeto al ke le habras asignado la segunda consulta... i sacar todas las imagenes ke tengan id_noticia = a la noticia ke vas a imprimir

entonces harias dos consultas pero tendrias el bucle para buscar imagenes de la segunda consulta.

Cita:

while ($fila = mysql_fetch_array($primera_consulta, MYSQL_BOTH))
{
*** voy al principio de $fila_2
while($fila_2=mysql_fetch_array($segundaconsulta))
{
if ($fila['id_noticia']==$fila_2['id_noticia'])
**** imprimo foto
}

}

Fridureiks 11/12/2007 20:00

Re: Duda con consultas y relaciones 1 a muchos.
 
Muchas muchas gracias Girion :-)

seyko 12/12/2007 03:44

Re: Duda con consultas y relaciones 1 a muchos.
 
Esta es una muy mala idea.
Hazlo con una consulta y es muy facil comprobar dentro de un bucle si la noticia cambia o es la misma noticia con otra imagen.
El rendimiento será muy muy muy superior a si tiras una consulta por cada noticia :patada:

Un saludo

BrujoNic 13/12/2007 13:11

Re: Duda con consultas y relaciones 1 a muchos.
 
giron, por favor lee la Función de la sección de Base de Datos. No pongas código de programación aquí.

Es raro... tengo amigos españoles y escriben bien eso de sustituir la y por i es una moda, falta de ortografía o qué? no tenes un corrector ortográfico? eso aplica también a las tontas palabras donde sustituyen letras por otras. Esto es un foro, es en español y no español inventado. Por favor trata de recordar eso.

Lee este tema==> Mejoremos la ortografía.

girion 14/12/2007 07:14

Re: Duda con consultas y relaciones 1 a muchos.
 
seyco, ya le explique que con dos consultas y dos bucles lo tiene solucionado.

girion 14/12/2007 07:15

Re: Duda con consultas y relaciones 1 a muchos.
 
Perdón por lo del código BrujoNic, no lo sabía, lo de la "i" es porque estoy acostumbrado a escribir en valenciano y se me escapan algunas letras

Perdón otra vez.

un saludo

seyko 14/12/2007 09:59

Re: Duda con consultas y relaciones 1 a muchos.
 
Cita:

Iniciado por girion (Mensaje 2217728)
seyco, ya le explique que con dos consultas y dos bucles lo tiene solucionado.

Ya lo lei, pero es mucho más eficiente hacerlo con una consulta y un bucle!


La zona horaria es GMT -6. Ahora son las 11:26.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.