Foros del Web » Programando para Internet » PHP »

mostrar 4 usuarios al azar pero con foto

Estas en el tema de mostrar 4 usuarios al azar pero con foto en el foro de PHP en Foros del Web. Hola foreros esta vez necesito mostrar 4 usuarios al azar pero si el usuario no tiene foto busque otro que si tenga osea que el ...
  #1 (permalink)  
Antiguo 18/01/2009, 04:40
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
mostrar 4 usuarios al azar pero con foto

Hola foreros esta vez necesito mostrar 4 usuarios al azar pero
si el usuario no tiene foto busque otro que si tenga osea que el random
se haga solo con los que tienen foto.

como creen que se pueda hacer?
  #2 (permalink)  
Antiguo 18/01/2009, 06:10
Avatar de pilsenero  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo-Uruguay
Mensajes: 42
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: mostrar 4 usuarios al azar pero con foto

deberias tener un campo imagen en tu tabla y que te recupere solo los usuarios que tengan activado ese campo.

Saludos
__________________
www.casasyautomoviles.com
clasificados de casas, autos y motos
  #3 (permalink)  
Antiguo 18/01/2009, 17:26
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: mostrar 4 usuarios al azar pero con foto

hice algo q funciono que opinan ustedes
sera q hay mejor forma?

Código PHP:
<?php
$contador 
1;
while (
$contador <= 4){
//consulto la db con rand y si imagen tiene foto  
//imprimo el usuario y sumo 1 a contador
//si no tiene nada no hace nada por lo tanto
//buscara otro registro
}
?>

edit: definitivamente funciona pero se esta demorando mucho mas en cargar
que puede ser?

Última edición por ..::MaRcOs::..; 18/01/2009 a las 17:41
  #4 (permalink)  
Antiguo 18/01/2009, 17:46
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: mostrar 4 usuarios al azar pero con foto

Código sql:
Ver original
  1. SELECT * FROM tabla WHERE foto != '' ORDER BY RAND() LIMIT 0, 4
Con esa consulta se escoge 4 registros aleatoriamente entre los que tienen algún valor asignado en el campo foto

  #5 (permalink)  
Antiguo 18/01/2009, 17:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: mostrar 4 usuarios al azar pero con foto

Pues es mejor si delegas esa tarea a la BDD, ya que si tienes un campo con la foto puedes usar algo asi:
Código sql:
Ver original
  1. SELECT * FROM usuarios WHERE `foto`!="" ORDER BY RAND() LIMIT 4

Saludos
  #6 (permalink)  
Antiguo 18/01/2009, 17:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: mostrar 4 usuarios al azar pero con foto

@Okram sorry por el choque, y también recordarte que no hace falta LIMIT 0, 4, con LIMIT 4 es suficiente

Saludos.
  #7 (permalink)  
Antiguo 18/01/2009, 18:09
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: mostrar 4 usuarios al azar pero con foto

muchas gracias esa si fue buena, hace lo que necesito y muy rapido
la que yo use es mucho mas larga y demorada
aqui la coloco para que nunca la vayan a hacer jeje

Código PHP:
<?php
    $cantuser 
1;
    
    while (
$cantuser <= 4){
    
    
$query = ("SELECT * FROM users ORDER by rand() limit 1"); 
    
$result mysql_query$query );
    while( 
$datos mysql_fetch_array$result ) ) {
    
    if (
$datos[imagen]!="")
    {
    
  
//imprimo la foto y nombre del usuario
    
    
$cantuser $cantuser 1;
    }
     }
}
    
?>
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:15.