Foros del Web » Programando para Internet » PHP »

numeros aleatorios

Estas en el tema de numeros aleatorios en el foro de PHP en Foros del Web. tengo en mi base de datos myql 10 preguntas las cuales quiero que se muestren uno por uno en forma aleatoria pero sin que se ...
  #1 (permalink)  
Antiguo 13/12/2008, 03:20
Avatar de pablolennin  
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo
Mensajes: 169
Antigüedad: 15 años, 4 meses
Puntos: 1
numeros aleatorios

tengo en mi base de datos myql 10 preguntas las cuales quiero que se muestren uno por uno en forma aleatoria pero sin que se repita la misma pregunta


mysql_result($r,$aleatorio,"pregunta");
  #2 (permalink)  
Antiguo 13/12/2008, 04:28
 
Fecha de Ingreso: julio-2008
Ubicación: El Puerto de Santa María
Mensajes: 62
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: numeros aleatorios

Para los números aleatorios puedes usar rand ()

Luego puedes meter ese número en algún sitio, porque ya ha salido, y en el siguiente rand () haces comprobaciones para ver si el número salió
  #3 (permalink)  
Antiguo 13/12/2008, 09:37
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: numeros aleatorios

Lo puedes hacer directamente desde la consulta SQL:

Código sql:
Ver original
  1. SELECT * FROM tabla ORDER BY RAND() LIMIT 0, 10

  #4 (permalink)  
Antiguo 14/12/2008, 03:04
Avatar de pablolennin  
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo
Mensajes: 169
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: numeros aleatorios

$numeros = range (0,$n-1);
srand (time());
shuffle ($numeros);
$j=0;
while (list(, $numero) = each ($numeros)) {
echo "$numero<br>";
setcookie("c[j]",$numero);
$j++;
}

e intentado esto pero no me muestra nada???

la solucion de "Kwic" me parece genial, pero donde los almaceno. porque los valores oscilan en dos scrips "mostrarpregunta.php"<-->"procesarpregunta.php"

Última edición por pablolennin; 14/12/2008 a las 03:23
  #5 (permalink)  
Antiguo 14/12/2008, 11:23
Avatar de uselox  
Fecha de Ingreso: agosto-2008
Ubicación: Lima, Perú
Mensajes: 168
Antigüedad: 15 años, 7 meses
Puntos: 12
Respuesta: numeros aleatorios

jajajajajaja
xD
-.- !

Última edición por uselox; 04/01/2009 a las 10:54
  #6 (permalink)  
Antiguo 14/12/2008, 11:57
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: numeros aleatorios

Cita:
la solucion de "Kwic" me parece genial, pero donde los almaceno. porque los valores oscilan en dos scrips "mostrarpregunta.php"<-->"procesarpregunta.php"
¿Viste la solución de okram?

Cita:
Lo puedes hacer directamente desde la consulta SQL:

SELECT * FROM tabla ORDER BY RAND() LIMIT 10
  #7 (permalink)  
Antiguo 04/01/2009, 10:50
Avatar de uselox  
Fecha de Ingreso: agosto-2008
Ubicación: Lima, Perú
Mensajes: 168
Antigüedad: 15 años, 7 meses
Puntos: 12
De acuerdo Respuesta: numeros aleatorios

Código PHP:
/**
Busca el elemento $buscado en la matriz($buscando) / Devuelve boleano
*/
function buscarArray($buscado$buscando){
    for(
$i=0$cant count($buscando); $i<$cant$i++){
        if(
$buscado == $buscando[$i])
            return 
true;
    }
    return 
false;
}
/**
Devuelve otra matriz random, con la misma cantidad
de elementos de la matriz pasada como argumento 
*/
function randomMatriz($matriz){
    while(
count($matriz) != count($arrKeys)){
        
$random $matriz[rand(0count($matriz) - 1)];
        if(!
buscarArray($random$arrKeys))
            
$arrKeys[] = $random;
    }
    return 
$arrKeys;            
}
//------------------
$consulta=@mysql_query("select idPregunta from tabla")or die(mysql_error()); 
for(
$c=0;$c<mysql_num_rows($consulta);$c++){ 
    
$num[]=mysql_result(0,$c,$consulta); 

$arrRand=randomMatriz($num);
print_r($arrRand); 

Última edición por uselox; 13/07/2009 a las 16:31 Razón: Algunas Mejoras para el codigo
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 01:37.