Foros del Web » Programando para Internet » PHP »

Numero aleatorio en PHP que no se repita

Estas en el tema de Numero aleatorio en PHP que no se repita en el foro de PHP en Foros del Web. Hola como estan una pregunta tengo un sistema de inventario y quiero crear un codigo para cada producto pero que no se repita por que ...
  #1 (permalink)  
Antiguo 25/05/2008, 00:54
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Pregunta Numero aleatorio en PHP que no se repita

Hola como estan una pregunta tengo un sistema de inventario y quiero crear un codigo para cada producto pero que no se repita por que de ese codigo depende las actualizaciones de inventario.

Alguien tien un codigo o una pagiandodne pueda optenerlo
Gracias de ante mano por tu ayuda.
  #2 (permalink)  
Antiguo 25/05/2008, 01:20
 
Fecha de Ingreso: diciembre-2006
Mensajes: 8
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Numero aleatorio en PHP que no se repita

Saludos, existen diversas formas.

p ej.

Código PHP:
md5(uniqid(rand(), true)); 
Código PHP:
time() . substr(md5(microtime()), 0rand(512)); 
Aunque, uniqid es considerado un función que afecta el rendmiento, por su lentitud.

De hecho tales ejemplo viene en la página, http :// www.php.net/uniqid

Lo interesantes de allí es que presentan varías opciones para lo que deseas, sería bueno que le hecharás un ojo.
  #3 (permalink)  
Antiguo 25/05/2008, 08:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
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
  #4 (permalink)  
Antiguo 25/05/2008, 11:50
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Respuesta: Numero aleatorio en PHP que no se repita

Gracias amigos lo voy a probar
  #5 (permalink)  
Antiguo 25/05/2008, 12:09
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Respuesta: Numero aleatorio en PHP que no se repita

bueno lo probe y esta excelente pero solo necesito numeros.. Gracias
  #6 (permalink)  
Antiguo 25/05/2008, 14:17
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 16 años, 9 meses
Puntos: 4
Respuesta: Numero aleatorio en PHP que no se repita

Hola Jose MArio

porque no usas un campo ID en la base de datos que sea autoincrementado. el numero no se repite.

en mysql el campo se define autoincremt
y en postgres es un campo tipo serial.


Igual casi tiodos lo motores de bases de daros tienen un campo asi.
__________________
Hernando Saenz Sanchez
  #7 (permalink)  
Antiguo 29/06/2008, 00:39
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Respuesta: Numero aleatorio en PHP que no se repita

Gracias eso hice .... :
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:51.