Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/02/2011, 02:35
Avatar de oso96_2000
oso96_2000
 
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Respuesta: Creación de 100mil Números ¿Pseudoaleatorios?!

Tu logica en el script donde consultas/insertas en la bd esta mal. Tendrias que realizar un select usando como condicion el numero que generaste y entonces, actuar segun el numero de filas devueltas.

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT num FROM numeros WHERE num = '$rnd'");
  2.  
  3. if (mysql_num_rows($sql) == 0) {
  4.     mysql_query("INSERT INTO numeros (num) VALUES('$rnd')");
  5. }

Algo así.. por el otro lado, aquí te dejo un código -y la explicación de como funciona- que te genera X cantidad de números aleatorios.

Código PHP:
Ver original
  1. <?php
  2. $numbers = array();
  3. do {
  4.     $rnd = mt_rand(100000000, 999999999);
  5.     if (in_array($rnd, $numbers)) continue;
  6.     $numbers[] = $rnd;
  7. } while (count($numbers) <= 1000);
  8.  
  9. print_r($numbers);

Lo estoy limitando a solamente 1000 numeros. Se crea un arreglo que es el que ira guardando los numeros. Luego con un do-while se empieza la generacion de los mismos. Un simple mt_rand con el rango adecuado te da los numeros de 9 cifras que buscas. Una vez que se tiene ese numero aleatorio, se comprueba que no exista ya en el arreglo, y si existe, nos vamos a generar un nuevo numero. Asi hasta que el total de elementos de el arreglo sean 1000.

Eso si, probé en mi maquina correr el script generando los 100000 numeros y me tomo un rato... 10m31.942s
__________________
Sin Ideas