Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2015, 18:48
Avatar de MLDGATO
MLDGATO
 
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 9 meses
Puntos: 2
Pregunta Generar códigos aleatorios y verificar que no se repitan en mysql

Hola quisiera saber como puedo extender el script de php que tengo para crear códigos aleatorios con un formato xxxxx-xxxxx-xxxxx-xxxxx-xxx15 donde el 15 del final es el año actual, tengo este código que me genera códigos aleatorios entre números y letras, pero el formato de este código es xxxxxxxxxx de 10 caracteres y quisiera que sea como el formato anterior y que verifique en la base de datos si no existe:

Código PHP:
function generarCodigo()
        {
            
$key '';
            
$pattern '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            
$max strlen($pattern)-1;
            for(
$i=0$i 10$i++) $key .= $pattern{mt_rand(0,$max)};
            return 
$key;
        }
        
$id generarCodigo(); 
La variable $id guarda el código, para verificar en la base de datos hice esto pero no se si están bien:

Código PHP:
function generarCodigo($conexion)
    {
        
$key '';
        do
        {
            
$pattern '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            
$max strlen($pattern)-1;
            for(
$i=0$i 10$i++) $key .= $pattern{mt_rand(0,$max)};
            
$consulta_verificar mysqli_query($conexion"SELECT * FROM codigos WHERE Valor = '".$key."'");
            
$verificar mysqli_num_rows($consulta_verificar);
        }
        while(
$verificar==1);
        return 
$key;
    }
    
    
$numero generarCodigo($conexion); 
Donde la variable $numero me guarda el código generado y en teoría verificó en mi base de datos, pero no se como hacer la lógica para que me quede en el el formato xxxxx-xxxxx-xxxxx-xxxxx-xxx15

Muchas gracias por la ayuda.