Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/07/2013, 10:11
carlosuc99
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: Ramdom que no se repita

Cita:
Iniciado por pateketrueke Ver Mensaje
Bueno, ya, en serio, ¿esperas que te demos el código a la medida?

Por favor, no alimenten con fragmentos de código si la intención no es ayudar a buscar una solución por uno mismo.

La idea es que carlosuc99 aprenda a resolver esto por su cuenta, pero por mas que miro no tiene intenciones de aprender, sólo esta esperando a que la divina solución caiga del cielo.

Sólo responde para decir que no le sirve, pero tampoco muestra lo que ya ha hecho, no consientan a los vagos.
Perdona????

Ya he mostrado lo que ya he hecho, y lo tienes dos mensajes arriba.

Código PHP:
Ver original
  1. $values = array();
  2. for($x=1;$x<=999;$x++) {
  3.     $values[$x] = $x;
  4. }
  5. $counter = 999;
  6. for($i = 0; $i < mysql_num_rows($query); $i++){
  7.     $rand_num = rand(1,$counter);
  8.     $current_number = $values[$rand_num];
  9.     array_splice($values, $rand_num, 1);
  10.     $counter--;
  11.     echo "rand number: " . $current_number . '<br>';
  12. }

Y esto código es totalmente válido, o por lo menos en las pruebas que he hecho las ha pasado.

Le he dicho al compañero que tenía que ser númerico porque el dijo:
Cita:
Si solo te interesa generar un identificador aleatorio y no te importa sea alfanumerico o numerico...
Claramente te has equivocado amigo, y espero que te disculpes.

PD: De hecho edito esto, porque he encontrado una solución mejor:

Código PHP:
Ver original
  1. $max_value = 999;
  2. $values = range(0, $max_value);
  3. $counter = $max_value;
  4. $num_rows = mysql_num_rows($query); //Muevo esto fuera del bucle para que no se recalcules seguido.
  5. for($i = 0; $i < $num_rows; $i++){
  6.     $rand_num = rand(0,$counter);
  7.     $current_number = $values[$rand_num];
  8.     array_splice($values, $rand_num, 1);
  9.     $counter--;
  10.     echo "rand number: " . $current_number . '<br>';
  11. }