Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/05/2008, 08:13
abigor66
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 16 años
Puntos: 8
Respuesta: Numero aleatorio en PHP que no se repita

saludos, lo que hago es generar un número aleatorio dentro del form que estoy utilizando para ingresar los valores que necesito almacenar

FORM.PHP
Código PHP:
<form name="form1" action="reg01.php" method="post">
<input name="numero" type="hidden" value="<?php echo $num=rand(1,20); ?>" />
</form>
REG01.PHP
Código PHP:
require_once('config.php');
 require_once(
'error.php');
$aleatorio$_POST["numero"];
$sqlaleatorio mysql_query("INSERT INTO tabla (num_aleatorio) VALUES ('$aleatoio') ");
  if(!
$sqlaleatorio )
    {    
      echo 
'no se ha podido conectar a la base de datos';
    }
  else
    {
      echo 
'registro satisfactorio';
    } 
ERROR.PHP
Código PHP:
$sqlnumigual mysql_query("SELECT * FROM `tabla` WHERE num_aleatorio='" $_POST[numero] . "'");

if(
mysql_num_rows($sqlnumigual )) {
  echo
'<form action="reg01.php" method="post" name="form2">
            <input name="numero" type="hidden" value="'
.$num=rand(1,20).'" />
            </form><script> document.form2.submit(); </script>'
;
        exit;

de esta manera, se verifica que el valor generado aleatoriamente no se encuentre almacenado en la BD, recerda que por más muneros y letras que tenga un valor aletorio existe la posibilidad de que se repita y más aun si las cifras que manejas son pequeñas de 2 digitos por ejemplo.

debes tener en cuenta que una vez registrados todos lo números posibles, el codigo entraría en un ciclo debido a que no puede generar un número diferente a los que estan almacenados, en ese caso deberas aumentar los valores que se asignan para aleatorizar.

espero te sirva. suerte

Última edición por abigor66; 27/05/2008 a las 07:32