Foros del Web » Programando para Internet » PHP »

Evitar ids en un bucle con llamada a base de datos

Estas en el tema de Evitar ids en un bucle con llamada a base de datos en el foro de PHP en Foros del Web. Hola a tod@s! Bueno, el problema que tengo no es muy complicado, me parece, pero estoy tan verde que no me sale... Hago una llamada ...
  #1 (permalink)  
Antiguo 15/09/2007, 10:13
Avatar de ferrins  
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 18 años, 11 meses
Puntos: 1
Evitar ids en un bucle con llamada a base de datos

Hola a tod@s!

Bueno, el problema que tengo no es muy complicado, me parece, pero estoy tan verde que no me sale...

Hago una llamada a la base de datos para que expulse una lista de las diez ultimas noticias, pero por otro bando tengo un array con un numero indefinido con la identificacion de algunas noticias que NO quiero que salgan en la lista a expulsar.

La cosa estaría en comparar la id del array con las que vas sacando de la bbdd pero no se como estructurarlo...

Si alguien me puede dar una pista... se agradecerá!

gracias por leerme!
  #2 (permalink)  
Antiguo 15/09/2007, 10:41
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Evitar ids en un bucle con llamada a base de datos

Si tu consulta es asi:

Código PHP:
$sql "SELECT * FROM tabla ORDER BY fecha SORT desc LIMIT 0,10"
y tu array con los id's es así:
Código PHP:
$array = array(1,2,5,8); 
Entonces podrias hacer esto:
Código PHP:
$prohibidos implode(",",$array);
$sql "SELECT * FROM tabla WHERE id_noticia NOT IN ($prohibidos) ORDER BY fecha SORT desc LIMIT 0,10"
No estoy muy seguro, pues nunca hice algo similar, pero así debería funcionarte

Referencias:
- http://dev.mysql.com/doc/refman/5.0/...ml#function_in

Un saludo,

Última edición por okram; 15/09/2007 a las 10:49
  #3 (permalink)  
Antiguo 15/09/2007, 10:48
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Evitar ids en un bucle con llamada a base de datos

Otra forma es usando la función in_array():

Código PHP:
$mostrar = array();
$no_mostrar = array(1,4,8);
 
while(
$datos mysql_fetch_assoc($query)) {
  if(
count($mostrar) < 10) {
    if(!
in_array($datos['noticia_id'], $no_mostrar)) $mostrar[] = $datos;
  } else break;
}
 
//print_r($mostrar); 
Referencias:
- http://www.php.net/inarray

Un saludo,
  #4 (permalink)  
Antiguo 15/09/2007, 11:15
Avatar de ferrins  
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Evitar ids en un bucle con llamada a base de datos

Que puedo decir?

los dos ejemplos funcionan perfectos!

Muchas gracias!!! :)
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:29.