Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Múltiples consultas a una BD

Estas en el tema de Múltiples consultas a una BD en el foro de Mysql en Foros del Web. Buenas, me surge una duda acerca de mySQL. Resulta que estoy haciendo una aplicación de facebook con PHP y guardo los datos de los jugadores ...
  #1 (permalink)  
Antiguo 27/11/2011, 21:28
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 12 años, 8 meses
Puntos: 1
Múltiples consultas a una BD

Buenas, me surge una duda acerca de mySQL. Resulta que estoy haciendo una aplicación de facebook con PHP y guardo los datos de los jugadores en una BD propia.
A traves de la API de Facebook recibo las ids de los amigos de la persona en cuestión (pueden ser cientos) y quiero saber cuales de sus amigos jugaron al juego.

Lo que yo he hecho hasta ahora es ir recorriendo el array e ir consultando a la BD si existe la ID de esa persona y si es así mostrar su puntuación. Pero creo que no es muy óptimo porque al final acabo haciendo en una página 100 o 200 consultas a la BD (una por cada ID del amigo). Teniendo en cuenta que una persona puede tener miles de amigos... tardaría en cargar creo yo.

Quería saber si es posible unificar todo en una consulta para optimizar un poco el tema (no tengo ni idea pero quizás si es posible). He pensado en poner id = amigo1 OR id = amigo2... OR id = amigoN (quizás es una barbaridad, pero así lo unificaría)

A ver si alguien me da alguna pista. Un saludo.

Última edición por framoshernandez; 27/11/2011 a las 21:33 Razón: idea
  #2 (permalink)  
Antiguo 27/11/2011, 21:44
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Múltiples consultas a una BD

Encontré esto por ahí, utiliza múltiples OR como pensé yo.

Código PHP:
Ver original
  1. $nombres = "Juan,Ricardo,Pablo,Jorge";
  2. $num = split(",", $nombres);
  3. $contador = count($num);
  4.  
  5. if ($contador > 0)
  6. {
  7.    $sql = "SELECT * FROM nombres WHERE Nombres = '$num[0]'";
  8.  
  9.    for($i = 1; $i < $contador; $i++)
  10.      $sql .= " OR Nombres = '$num[$i]'";
  11. }

Es óptimo usar algo así para muchos ORs?

Gracias.

Etiquetas: bd, php, sql
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 15:11.