New question

Question:

Date: 22-05-2017 19:47:27 (In Spanish)

Crear id's personales[Unresolved]

Que tal tengo la noción de como seria pero no se como elaborarlo

La cosa seria que cuando un usuario se registre en lugar que su Id sea "1" en la base de datos sea como por ejemplo 2017PERE01

Donde 2017 es el año que se registro, PERE es su apellido PEREZ y 01 es la primera persona con el apellido PEREZ ya en caso que se registre otro PEREZ seria 2017PERE02

¿como podría elaborarse esto? Estaría muy agradecido con ustedes si me ayudan

Muchas gracias
Tags: Database - MySQL - Patterns - PHP - PHP Advanced - Question - Web Votes: 0 - Answers: 6 - Views: 23 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 23-05-2017 05:30:01 En primera haria una consulta a la base de datos con el campo que ingresen como apellido, algo asi como SELECT COUNT(apellido)+1 AS consecutivo FROM usuarios WHERE apellido='$varApellido' , pues enseguida solo tomas este valor que obtuviste en tu consulta y concatenas, $idPersonal = date('Y').$varApellido.$consecutivo; y pues yo creo que así podría ser una solución.   Votes: 0 - Link answer
     
  • Date: 23-05-2017 13:27:53 Te recomiendo que el id de los registros en las tablas si sea numérico , yo haría lo siguiente:

    Crear mi tabla de usuario con campos
    id (numerico y autoincrement y llave primaria)
    Nombre
    ApellidoPaterno
    ApellidoMaterno
    FechaCaptura
    etcetera....

    A la hora de loguearse o de hacer algun reporte puedes formar la cadena con un query que por la estructura que quieres sería:

    SELECT
     CONCAT(YEAR(FechaCaptura),'',SUBSTRING(ApellidoPaterno,1,4),'',id) AS NuevoId
    FROM usuarios
    
    


    Es mejor dejar id numérico e indexado por que cuando tengas muchos registros será mas rápido hacer las búsquedas, espero puedas analizarlo y hacer saber tus dudas o comentarios.
      Votes: 1 - Link answer
     
  • Date: 24-05-2017 18:46:38 Tiene mucha razon nuestro compañero Ruben el di debe ser siempre un numero asi que si quieres que los numeros sean aleatorios lo cual es lo mas sensato te recomiendo que en vez de que se incremente x1 la id x cada usuario que se registre puedes crear números aleatorios x cada registro y si acaso el numero aleatorio que toco se repite con un id que ya este en nuestra tabla usuarios ejemplo pues solo volvemos a ejecutar la function numero_aleatorio si ya no se existe pues ya se registra:
    Numero Aleatorio
      Votes: 0 - Link answer
     
  • Date: 28-05-2017 08:13:42 Yo creo que lo mejor que podrías hacer es dividir el anterior registro; es decir, 2017PERE01 en (2017)(PERE)(01) y el último valor del arreglo le aumentas 1: newRegs= lastRegs+1. Luego, vuelves a acoplar la información del registro 2017CARLA02. Es sencillo de realizar. Saludos   Votes: 0 - Link answer
     
  • Date: 14-09-2017 16:32:27 Recibiria los datos por el metodo POST luego los trabajaria como un array con el ciclo for tomara lo que quiero del apellido luego consultas la tabla usuarios cuentas los resultados con el mismo apellido y le sumas 1 luego en una variable concatenas los datos y los guardas en tu tabla.

    Espero te sirva
      Votes: 0 - Link answer
     
  • Date: 10-10-2017 16:49:20 igual te recomiendo usar solo número pero si aún así requieres lo que dices entonces...
    se asume que el usuario tiene el id cuando se registra entonces podrías sacar la fecha en ese instante, se me ocurre algo como esto:
    <!DOCTYPE html>
    <html lang="es">
    <head>
    	<meta charset="UTF-8">
    	<title>inicio</title>
    </head>
    <body>
    	<?php 
    		$apellido = 'perez';
    		$query = 'select count(*) from usuarios where apellido = ?';
    						// tu continua con la consulta...
    						// ... esto devolvera el número de perez que hay ej: 5
    		$n_apellido = 2;
    		// al resultado hay que sumarle 1
    		$n_apellido++;
    		$n_apellido = $n_apellido-10 < 0?'0'.$n_apellido : $n_apellido;
    				// para poner 02 si es 2  o 21 si es 21 xD
    		$id = date('Y') . substr($apellido, 0,4) . $n_apellido;
    		$id = strtoupper($id);
    						// supongamos que el numero se almaceno en $n_apellido
    		echo $id;	// res: 2017PERE02
    	 ?>
    </body>
    </html>
    
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com