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