Foros del Web » Programando para Internet » PHP »

Ayudita con el ID inicio del año empezar otra vez

Estas en el tema de Ayudita con el ID inicio del año empezar otra vez en el foro de PHP en Foros del Web. Cita: Iniciado por Alexis88 Eso ocurre porque no se está cumpliendo la condición. En el ejemplo que te dí, el código tiene la forma "año-número ...

  #31 (permalink)  
Antiguo 09/01/2016, 08:32
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por Alexis88 Ver Mensaje
Eso ocurre porque no se está cumpliendo la condición. En el ejemplo que te dí, el código tiene la forma "año-número de orden", siendo los primeros cuatro carácteres los dígitos del año, que es precisamente lo que tomo con la función SUBSTRING(). Entonces, lo que necesitas es simplemente modificar tanto la condición como la línea en la que se toma al último código para así incrementarlo en uno.

Código MySQL:
Ver original
  1. IF ((SELECT COUNT(*) FROM Personas AS alias1) > 0 AND SUBSTRING((SELECT CodigoUnico FROM Personas AS alias2 ORDER BY CodigoUnico DESC LIMIT 1), 8, 12) = YEAR(CURDATE()),
  2.     CONCAT(
  3.         YEAR(CURDATE()),
  4.         '-',
  5.         CONVERT(
  6.             SUBSTRING((SELECT CodigoUnico FROM Personas AS alias3 ORDER BY CodigoUnico DESC LIMIT 1), 14),
  7.             UNSIGNED INTEGER
  8.         ) + 1
  9.     ),
  10.     CONCAT(YEAR(CURDATE()), '-', 1)
  11. )

El año aparece en la posición 8 y culmina en la 12, mientras que el número correlativo aparece en la posición 14. Esos son los números que tenías que poner como nuevos argumentos de la función.

Siempre debes analizar el código antes de probarlo, pues, por limitarse a copiar y pegar sin antes verificar que la lógica del algoritmo se adecúa a lo que necesitamos, surgen inconvenientes, como este.

Un saludo

Hola Alexis

La verdad nose que es condicion o algo asi, si copio y pego ya que no se nada del tema,
aprendi un poco solo con los ejemplos, con ello me baso a resolver pequeños problemas,
por otro lado esta tan dificil todo esto para solucionar el codigo? o no se puede?
es decir seguro no existira solucion creo, bueno no lose.



Este es el codigo cambie el 8, 12, y 14 Y SIGUE igual solo guarda lo mismo.
2016-1, 2016-1,

Pregunta, debo borrar el ID de autoincrement de mi TABLA? o es eso que causa el
problema que guarda solo 2016-1, 2016-1, o dejo el ID autoincrement??
creo que el ID es importante para todo creo supongo, que pasa si necesito mas
adelante hacer una consulta por ID,? para que no exista duplicado digo yo.


Este es el codigo actual que solo guarda 2016-1, 2016-1,

Código PHP:
Ver original
  1. <?
  2.     include_once('conectar.php'); // Conexion
  3.     $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Verificar Conexión
  4.     if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.     if (isset($_POST['action']) && $_POST['action'] == 'add')
  6.     {
  7.     if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  8.     $Nombre = $_POST['Nombre'];
  9.     $Apellido = $_POST['Apellido'];
  10.     $Anio = $_POST['Anio'];
  11.     $CodigoUnico = $_POST['CodigoUnico'];
  12.  
  13.     $inserta = $db->query("INSERT INTO Personas (CodigoUnico,Nombre,Apellido,Anio) VALUES (
  14.    IF ((SELECT COUNT(*) FROM Personas AS alias1) > 0 AND SUBSTRING((SELECT CodigoUnico FROM Personas AS alias2 ORDER BY CodigoUnico DESC LIMIT 1), 8, 12) = YEAR(CURDATE()),
  15.        CONCAT(
  16.            YEAR(CURDATE()),
  17.            '-',
  18.            CONVERT(
  19.                SUBSTRING((SELECT CodigoUnico FROM Personas AS alias3 ORDER BY CodigoUnico DESC LIMIT 1), 14),
  20.                UNSIGNED INTEGER
  21.            ) + 1
  22.        ),
  23.        CONCAT(YEAR(CURDATE()), '-', 1)
  24.    ),'$Nombre','$Apellido','$Anio'
  25. )");
  26.  
  27.  
  28.     if($inserta){        
  29.     echo "Listo";
  30.     } else {
  31.     echo "Error: " . $inserta . "<br>" . mysqli_error($conexion);
  32. }
  33. }
  34. ?>





MIENTRAS probare EL OTRO CODIGO de ejemplo
quiza me resulte con lo de coyote

Seguire esperando ayuda...
  #32 (permalink)  
Antiguo 09/01/2016, 08:44
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por juancaalbarracin Ver Mensaje
Tienes toda la razón rodocoyote; entones habra que hacer una modificacion mas:

Código PHP:
Ver original
  1. $sql="SELECT CodigoUnico FROM Personas WHERE CodigoUnico LIKE '".$cod."%' ORDER BY CodigoUnico DESC";
  2. $result=mysqli_query($mysqli,$sql); //donde mysqli es tu conexión
  3. $registros=mysqli_fetch_assoc($result);
  4.  
  5. $parte=explode('-'.$registros['CodigoUnico']);//para separar el codigo en partes
  6. $nuevo=$partes[2]+1;
  7.  
  8. $nuevo codigo=$cod."-".$nuevo

Y ahi si me parece que estaria mejor (me parece que hay una mejor forma de usar el explode pero de esta entiendes exactamente lo que estas haciendo paso a paso)

Copie el nuevo ejemplo a ver si resulta y a hay un error aqui le puse tambien ";" y nada

Código PHP:
Ver original
  1. $nuevo codigo=$cod."-".$nuevo;

la idea es que llegue al final de año y al inicio del año empiece todo otra vez
DEBERIA ser asi:
CODIGO-2015-9816
CODIGO-2016-1
CODIGO-2016-2
CODIGO-2016-3

SI ES otro año

CODIGO-2017-1
CODIGO-2017-2
CODIGO-2017-3

ETC....
  #33 (permalink)  
Antiguo 09/01/2016, 09:09
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Esta es mi TABLA

Código HTML:
CREATE TABLE IF NOT EXISTS `Personas` (
  `idp` int(11) NOT NULL AUTO_INCREMENT,
  `CodigoUnico` text NOT NULL,
  `Anio` datetime DEFAULT NULL,
  `Nombre` varchar(100) NOT NULL DEFAULT '',
  `Apellido` varchar(100) NOT NULL DEFAULT '',
  PRIMARY KEY (`idp`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
DEbo crear un CAmpo Nuevo Para mi Tabla???
Ya que, antes su funcion era lo siguiente


En el campo "CodigoUnico" Guardaba el codigo GEnerado Mas el ID
ejemplo, CODIGO-AÑO + ID segun se incremente el ID si mi ID
llega a mas de mil sigue creciendo etc...

Quedando Asi
CODIGO-2015-1
CODIGO-2015-2........................
CODIGO-2015-98732
ETC...

Ahora con la nueva consulta al SQL, ya no guarda el CODIGO-AÑO + ID
Entonces Como es que, leera el "CodigoUnico" si no tiene un orden?
ya que antes en el codigo que puse guardaba CODIGO-AÑO + ID

o es que lee el MISMO ID " `idp` int(11) NOT NULL AUTO_INCREMENT,"
por que solo guarda 2016-1, 2016-1, 2016-1...etc

AQui el Codigo de INICIO cuando guardaba CODIGO-AÑO + ID
EJEMPLO: CODIGO-2015-1, CODIGO-2015-2.. ETC...

Código PHP:
Ver original
  1. <?
  2.     include_once('conectar.php'); // Conexion
  3.     $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Verificar Conexión
  4.     if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.     if (isset($_POST['action']) && $_POST['action'] == 'add')
  6.     {
  7.     if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  8.     $Nombre = $_POST['Nombre'];
  9.     $Apellido = $_POST['Apellido'];
  10.     $Anio = $_POST['Anio'];
  11.     $CodigoUnico = $_POST['CodigoUnico'];
  12.     $inserta = $db->query("INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','')");
  13.     $ultima = mysqli_insert_id($db);
  14.     $dato = "CODIGO-".date("Y")."-".$ultima;  // Resultado CODIGO-2015-ID = CODIGO-2015-1
  15.     $actu = $db->query("UPDATE Personas SET CodigoUnico = '$dato' WHERE id = '$ultima'");
  16.     if($actu){        
  17.     echo "Listo";
  18.     echo "ID es: " . $ultima; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  19.     } else {
  20.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  21. }
  22. }
  23. ?>
  #34 (permalink)  
Antiguo 09/01/2016, 10:44
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por Alexis88 Ver Mensaje
El código correlativo es el código de tu tabla, que bien puede ser la clave primaria. Es el campo que almacenará el código identificador de cada registro. Como también te dije, a excepción de las dos líneas que señalé en mi anterior comentario, lo único que debes modificar es el nombre del campo del código y el de la tabla en el código que se encuentra entre esas líneas.

Por ejemplo, en la línea 7, debería quedar más o menos así:
Código MySQL:
Ver original
  1. SUBSTRING((SELECT campo del código FROM tu tabla AS alias3 ORDER BY campo del código DESC LIMIT 1), 6),

Y en la primera línea, el campo del código debe ir al inicio, no al final, como lo estás colocando. Trata de fijarte bien en el orden.

EStaba leyendo esto como media hora o mas lea y lea para comprender
ya que todos no tenemos la misma edad y capacidad de comprender.

a ver si entendi en este concepto
el ID es El código correlativo `idp` int(11) NOT NULL AUTO_INCREMENT,
y el `CodigoUnico` text NOT NULL, ES EL que almacenara el nuevo numero?

Si es asi en que lineas hay que cambiar o modificar para que resulte
o creo un campo nuevo para que guarde el codigo nuevo??
estoy muy perdido en el tema, estoy como un niño de 4 años queriendo jugar
un partido mundial y jugar con todo esos profesionales que se que
algun momento me pueden golpear que cuando ellos metan goles, yo aun recien doy
un paso con la pelota que dificil es ser viejo y no haber aprendido esto de joven.
  #35 (permalink)  
Antiguo 09/01/2016, 10:51
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

acabo de probar con el ID y guardo con el año 2016 y sale este error
si creo otro usuario

Duplicate entry '2016' for key 'PRIMARY'
  #36 (permalink)  
Antiguo 09/01/2016, 11:00
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Vale Pilucho. Lo trataré de resolver a mi manera con PHP, ya vengo :D
  #37 (permalink)  
Antiguo 09/01/2016, 11:44
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por pilucho Ver Mensaje
acabo de probar con el ID y guardo con el año 2016 y sale este error
si creo otro usuario

Duplicate entry '2016' for key 'PRIMARY'
La finalidad de todo esto, cual es? Mostrar un reporte anual de facturas o similar?
Por qué pienso que si este es el fin habría una forma más simple de abordarlo añadiendo simplemente un campo fecha con la fecha de la entrada. Y luego trae los registros en una consulta ordenados por el campo fecha y en caso de tener que enumerarlos de 1 a N simplemente añadir un contador en el bucle al recorrer los registros. No se si me explico.
  #38 (permalink)  
Antiguo 09/01/2016, 11:53
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Vale Pilucho. Lo trataré de resolver a mi manera con PHP, ya vengo :D
Gracias rodocoyote15
  #39 (permalink)  
Antiguo 09/01/2016, 11:59
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por xerifandtomas Ver Mensaje
La finalidad de todo esto, cual es? Mostrar un reporte anual de facturas o similar?
Por qué pienso que si este es el fin habría una forma más simple de abordarlo añadiendo simplemente un campo fecha con la fecha de la entrada. Y luego trae los registros en una consulta ordenados por el campo fecha y en caso de tener que enumerarlos de 1 a N simplemente añadir un contador en el bucle al recorrer los registros. No se si me explico.
Hola xerifandtomas

No es asi, creo que perdiste el hilo del tema, PERO es MUY importante lo que acabas de mensionar, ya que si es lo que necesitare ya que en un POST aqui , hice la consulta y nada no lograron ayudarme pero si la idea que me dices, se puede resolver bienvenido sea, aqui te dejo el post

Enlace del pOst
  #40 (permalink)  
Antiguo 09/01/2016, 12:23
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Código PHP:
Ver original
  1. <?php
  2.     $añoActual = date("Y");
  3.     $conexion = mysqli_connect("localhost","root","","produccion") or die ('error');
  4.    
  5.  
  6.    
  7.     if(date("d/m") == "01/01"){
  8.       $queryNuevo = "SELECT CodigoUnico FROM personas WHERE idp=(SELECT max(id) FROM personas) AND CodigoUnico REGEXP '$añoActual' ";
  9.       if ($ultimoId = $conexion->query($queryNuevo)) {
  10.         /* obtener el array de objetos */
  11.           if($ultimoId->num_rows) {
  12.           while ($fila2 = $ultimoId->fetch_row()) {
  13.            
  14.             $ultimoIdAno = $fila2[0];
  15.             $buscarCodigo = strrpos($ultimoIdAno, '-')+1; // busca la posición del último guion medio y le añade 1
  16.             $codigo = substr($ultimoIdAno, $buscarCodigo); // recupera lo que está después del ultimo guión, que sería el código (1480)
  17.             $codNuevo = $codigo + 1; // añade 1 al código anterior
  18.             $dato = "CODIGO-".$añoActual."-".$codNuevo; // te devolvería            
  19.  
  20.             }      
  21.           }
  22.           else{
  23.           $dato = "CODIGO-".$añoActual."-1";
  24.           }
  25.  
  26.  
  27.         }  
  28.     }
  29.     else{
  30.         $consulta = "SELECT CodigoUnico FROM personas WHERE idp=(SELECT max(id) FROM personas)";
  31.  
  32.         if ($resultado = $conexion->query($consulta)) {
  33.             /* obtener el array de objetos */
  34.             while ($fila = $resultado->fetch_row()) {
  35.                 $ultimo_id = $fila[0];                
  36.                 $buscarCodigo = strrpos($ultimo_id, '-')+1; // busca la posición del último guion medio y le añade 1
  37.                 $codigo = substr($ultimo_id, $buscarCodigo); // recupera lo que está después del ultimo guión, que sería el código (1480)
  38.                 $codNuevo = $codigo + 1; // añade 1 al código anterior
  39.                 $dato = "CODIGO-".$añoActual."-".$codNuevo; // te devolvería          
  40.                 echo $dato;
  41.             }  
  42.            
  43.         }    
  44.     }
  45.  
  46.  
  47.     ?>

Vale, por ahí anda. Creo que pude haber optimizado el código, pero ya te toca. Saludos
  #41 (permalink)  
Antiguo 09/01/2016, 13:08
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

algo paso que todo lo que alex me explico guarda todo con los años siguientes en el iD

ejemplo el ID debe incrementarse 1,2,3,4 etc
ahora se incremente por el AÑO 2016,2017 eh hice un backup y sale lo mismo
que ha pasado el codigo que esta puesto mas arriba es el que esta en uso
que paso y no puedo seguir el ejemplo de rodcoyote
  #42 (permalink)  
Antiguo 09/01/2016, 13:23
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

SOLUCIONE el Problema de los IDs tenia que entrar al SQL y modificar donde dice OPERACIONES
estaba incrementandose del ultimo ID ingresado por eso decia 2024 etc,... le puse su valor real que seguia del ID

CREO QUE el codigo de Alexis no funciono se veia BUENO como dicen por ahi fue una bonita Finta.


Rodocoyote probe el codigo que me has puesto y no hace nada
ni muestra array de lo que ingrese tampoco guarda la consulta
O debo crear un campo nuevo para que guarde algo???
como funciona tu codigo???
  #43 (permalink)  
Antiguo 09/01/2016, 15:38
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Ayudita con el ID inicio del año empezar otra vez

El código sólo resuelve o trata de resolver lo que haz estado preguntando, te toca leerlo un poco y ver donde poner tus variables con la información, además, si lo checas, verás que no hay ninguna sentencia INSERT. Te toca implementarlo, tampoco puedo hacerlo todo. Saludos
  #44 (permalink)  
Antiguo 09/01/2016, 15:52
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

El select solo me muestra

CODIGO-2016-1

y no me muestra el siguiente

CODIGO-2016-1
CODIGO-2016-2

solo array
CODIGO-2016-1

Última edición por pilucho; 09/01/2016 a las 15:58
  #45 (permalink)  
Antiguo 09/01/2016, 16:02
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Ya arregle el ID solo me muestra
CODIGO-2016-1
CODIGO-2016-1

Que esta mal??

Código PHP:
Ver original
  1. <?php
  2.     $añoActual = date("Y");
  3.     $conexion = mysqli_connect("localhost","root","","produccion") or die ('error');
  4.    
  5.  
  6.    
  7.     if(date("d/m") == "01/01"){
  8.       $queryNuevo = "SELECT CodigoUnico FROM personas WHERE idp=(SELECT max(idp) FROM personas) AND CodigoUnico REGEXP '$añoActual' ";
  9.       if ($ultimoId = $conexion->query($queryNuevo)) {
  10.         /* obtener el array de objetos */
  11.           if($ultimoId->num_rows) {
  12.           while ($fila2 = $ultimoId->fetch_row()) {
  13.            
  14.             $ultimoIdAno = $fila2[0];
  15.             $buscarCodigo = strrpos($ultimoIdAno, '-')+1; // busca la posición del último guion medio y le añade 1
  16.             $codigo = substr($ultimoIdAno, $buscarCodigo); // recupera lo que está después del ultimo guión, que sería el código (1480)
  17.             $codNuevo = $codigo + 1; // añade 1 al código anterior
  18.             $dato = "CODIGO-".$añoActual."-".$codNuevo; // te devolvería            
  19.  
  20.             }      
  21.           }
  22.           else{
  23.           $dato = "CODIGO-".$añoActual."-1";
  24.           }
  25.  
  26.  
  27.         }  
  28.     }
  29.     else{
  30.         $consulta = "SELECT CodigoUnico FROM personas WHERE idp=(SELECT max(idp) FROM personas)";
  31.  
  32.         if ($resultado = $conexion->query($consulta)) {
  33.             /* obtener el array de objetos */
  34.             while ($fila = $resultado->fetch_row()) {
  35.                 $ultimo_id = $fila[0];                
  36.                 $buscarCodigo = strrpos($ultimo_id, '-')+1; // busca la posición del último guion medio y le añade 1
  37.                 $codigo = substr($ultimo_id, $buscarCodigo); // recupera lo que está después del ultimo guión, que sería el código (1480)
  38.                 $codNuevo = $codigo + 1; // añade 1 al código anterior
  39.                 $dato = "CODIGO-".$añoActual."-".$codNuevo; // te devolvería          
  40.                 echo $dato;
  41.             }  
  42.            
  43.         }    
  44.     }
  45.  
  46.  
  47.     ?>


Seguire esperando ayuda a ver si alguien tiene otra idea :(
  #46 (permalink)  
Antiguo 09/01/2016, 16:41
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Ayudita con el ID inicio del año empezar otra vez

No hay nada 'malo', debes de cambiar la conexión, esa fue mi conexión, no incluiste tu conexion a la base de datos, debes cambiar esta linea
Código PHP:
Ver original
  1. $conexion = mysqli_connect("localhost","root","","produccion") or die ('error');

Por los datos de tu conexión.

Y para probar las condicionales cambia

Código PHP:
Ver original
  1. if(date("d/m") == "01/01"){

Por
Código PHP:
Ver original
  1. if("01/01" == "01/01"){

Por ejemplo. Los datos que recibes del formulario los puedes poner justo despues de la linea de conexión, y el codigo restante que yo te di, debes de incluirlo en el isset del botón o un isset que recuerdo ver por ahí.


Dentro de cada consulta debes incluir tu linea de "Insert". Vamos, a pensar un poco
  #47 (permalink)  
Antiguo 09/01/2016, 16:54
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por rodocoyote15 Ver Mensaje
No hay nada 'malo', debes de cambiar la conexión, esa fue mi conexión, no incluiste tu conexion a la base de datos, debes cambiar esta linea
Código PHP:
Ver original
  1. $conexion = mysqli_connect("localhost","root","","produccion") or die ('error');

Por los datos de tu conexión.

Y para probar las condicionales cambia

Código PHP:
Ver original
  1. if(date("d/m") == "01/01"){

Por
Código PHP:
Ver original
  1. if("01/01" == "01/01"){

Por ejemplo. Los datos que recibes del formulario los puedes poner justo despues de la linea de conexión, y el codigo restante que yo te di, debes de incluirlo en el isset del botón o un isset que recuerdo ver por ahí.


Dentro de cada consulta debes incluir tu linea de "Insert". Vamos, a pensar un poco

LA CONEXION lo cambie desde que saque el codigo de aqui, obvio
que no es necesario poner los datos de conexion aqui o lo necesitas?????

Y cambie esto

Código PHP:
Ver original
  1. if("01/01" == "01/01"){

Y nada es mas ahora en el array desaparecio el ¨CODIGO-2016-1¨ hice un nuevo
insert y el campo "CodigoUnico" esta vacia ahora ya no guarda nada ahi.


Con respecto al formulario e insert no te entendi bien que es lo que quieres que haga??
  #48 (permalink)  
Antiguo 09/01/2016, 17:04
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Pega todo tu código que tienes ahora, sin quitar nada ni mover nada
  #49 (permalink)  
Antiguo 09/01/2016, 17:06
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Guarda en un Campo CodigoUnico
CODIGO-AÑO + ID segun se incremente el ID

Resultado:
CODIGO-2015-1
CODIGO-2015-2
ETC...
Código PHP:
Ver original
  1. <?
  2.     include_once('conectar.php'); // Conexion
  3.     $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Verificar Conexión
  4.     if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.    
  6.     if (isset($_POST['action']) && $_POST['action'] == 'add')
  7.     {
  8.     if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  9.     $Nombre = $_POST['Nombre'];
  10.     $Apellido = $_POST['Apellido'];
  11.     $Anio = $_POST['Anio'];
  12.     $CodigoUnico = $_POST['CodigoUnico'];
  13.     $inserta = $db->query("INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','')");
  14.     $ultima = mysqli_insert_id($db);
  15.     $dato = "CODIGO-".date("Y")."-".$ultima;  // Resultado CODIGO-2015-ID = CODIGO-2015-1
  16.     $actu = $db->query("UPDATE Personas SET CodigoUnico = '$dato' WHERE id = '$ultima'");
  17.     if($actu){        
  18.     echo "Listo";
  19.     echo "ID es: " . $ultima; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  20.     } else {
  21.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  22. }
  23. }
  24. ?>

AQUI TU CODIGO
Código PHP:
Ver original
  1. <?php
  2.     $añoActual = date("Y");
  3.  
  4.     include_once('conectar.php'); // Conexion
  5.     $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Verificar Conexión
  6.     if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  7.    
  8.     if(date("01/01") == "01/01"){
  9.       $queryNuevo = "SELECT CodigoUnico FROM Personas WHERE idp=(SELECT max(idp) FROM Personas) AND CodigoUnico REGEXP '$añoActual' ";
  10.       if ($ultimoId = $conexion->query($queryNuevo)) {
  11.         /* obtener el array de objetos */
  12.           if($ultimoId->num_rows) {
  13.           while ($fila2 = $ultimoId->fetch_row()) {
  14.            
  15.             $ultimoIdAno = $fila2[0];
  16.             $buscarCodigo = strrpos($ultimoIdAno, '-')+1; // busca la posición del último guion medio y le añade 1
  17.             $codigo = substr($ultimoIdAno, $buscarCodigo); // recupera lo que está después del ultimo guión, que sería el código (1480)
  18.             $codNuevo = $codigo + 1; // añade 1 al código anterior
  19.             $dato = "CODIGO-".$añoActual."-".$codNuevo; // te devolvería            
  20.  
  21.             }      
  22.           }
  23.           else{
  24.           $dato = "CODIGO-".$añoActual."-1";
  25.           }
  26.  
  27.  
  28.         }  
  29.     }
  30.     else{
  31.         $consulta = "SELECT CodigoUnico FROM Personas WHERE idp=(SELECT max(idp) FROM Personas)";
  32.  
  33.         if ($resultado = $conexion->query($consulta)) {
  34.             /* obtener el array de objetos */
  35.             while ($fila = $resultado->fetch_row()) {
  36.                 $ultimo_id = $fila[0];                
  37.                 $buscarCodigo = strrpos($ultimo_id, '-')+1; // busca la posición del último guion medio y le añade 1
  38.                 $codigo = substr($ultimo_id, $buscarCodigo); // recupera lo que está después del ultimo guión, que sería el código (1480)
  39.                 $codNuevo = $codigo + 1; // añade 1 al código anterior
  40.                 $dato = "CODIGO-".$añoActual."-".$codNuevo; // te devolvería          
  41.                 echo $dato;
  42.             }  
  43.            
  44.         }    
  45.     }
  46. ?>
  #50 (permalink)  
Antiguo 09/01/2016, 21:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ayudita con el ID inicio del año empezar otra vez

El único cambio que te indiqué hacer en tu tabla es el de cambiar el tipo de dato del campo del código de entero autoincrementable a cadena puesto que tu idea de código está compuestos por números, letras y guiones.

En cuanto a la consulta SQL, para que quede como quieres, solo hace falta concatenar la expresión "CODIGO-":

Código MySQL:
Ver original
  1. IF ((SELECT COUNT(*) FROM Personas AS alias1) > 0 AND SUBSTRING((SELECT CodigoUnico FROM Personas AS alias2 ORDER BY CodigoUnico DESC LIMIT 1), 8, 12) = YEAR(CURDATE()),
  2.     CONCAT(
  3.         "CODIGO-",
  4.         YEAR(CURDATE()),
  5.         '-',
  6.         CONVERT(
  7.             SUBSTRING((SELECT CodigoUnico FROM Personas AS alias3 ORDER BY CodigoUnico DESC LIMIT 1), 14),
  8.             UNSIGNED INTEGER
  9.         ) + 1
  10.     ),
  11.     CONCAT("CODIGO-", YEAR(CURDATE()), '-', 1)
  12. )

El bloque de la condición y las instrucciones que se ejecutan según sea el caso, sirven para generar el código correlativo. Se buscan datos en la tabla y de haberlos y ser el último código insertado perteneciente al año actual, se genera un nuevo código correlativo para el mismo año, caso contrario, se genera uno pero para el nuevo año, empezando la cuenta desde el 1.

También puedes hacerlo con PHP, pero particularmente me decanto por MySQL por la eficiencia y velocidad del motor de la base de datos.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #51 (permalink)  
Antiguo 09/01/2016, 22:22
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por Alexis88 Ver Mensaje
El único cambio que te indiqué hacer en tu tabla es el de cambiar el tipo de dato del campo del código de entero autoincrementable a cadena puesto que tu idea de código está compuestos por números, letras y guiones.

En cuanto a la consulta SQL, para que quede como quieres, solo hace falta concatenar la expresión "CODIGO-":

Código MySQL:
Ver original
  1. IF ((SELECT COUNT(*) FROM Personas AS alias1) > 0 AND SUBSTRING((SELECT CodigoUnico FROM Personas AS alias2 ORDER BY CodigoUnico DESC LIMIT 1), 8, 12) = YEAR(CURDATE()),
  2.     CONCAT(
  3.         "CODIGO-",
  4.         YEAR(CURDATE()),
  5.         '-',
  6.         CONVERT(
  7.             SUBSTRING((SELECT CodigoUnico FROM Personas AS alias3 ORDER BY CodigoUnico DESC LIMIT 1), 14),
  8.             UNSIGNED INTEGER
  9.         ) + 1
  10.     ),
  11.     CONCAT("CODIGO-", YEAR(CURDATE()), '-', 1)
  12. )

El bloque de la condición y las instrucciones que se ejecutan según sea el caso, sirven para generar el código correlativo. Se buscan datos en la tabla y de haberlos y ser el último código insertado perteneciente al año actual, se genera un nuevo código correlativo para el mismo año, caso contrario, se genera uno pero para el nuevo año, empezando la cuenta desde el 1.

También puedes hacerlo con PHP, pero particularmente me decanto por MySQL por la eficiencia y velocidad del motor de la base de datos.

Un saludo
es que no comprendo las palabras que usas pense que era facil solucionar o sea ya no sirve mi tabla?? no comprendo

esta es mi tabla
Cita:
CREATE TABLE IF NOT EXISTS `Personas` (
`idp` int(11) NOT NULL AUTO_INCREMENT,
`CodigoUnico` text NOT NULL,
`Anio` datetime DEFAULT NULL,
`Nombre` varchar(100) NOT NULL DEFAULT '',
`Apellido` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`idp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

Última edición por pilucho; 09/01/2016 a las 22:23 Razón: add tb
  #52 (permalink)  
Antiguo 09/01/2016, 22:32
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

NO recuerdo en ningun texto que hagas dicho que cambie mi TABLA
pero crees que podrias ayudarme con el tema porfavor?

que es lo que debo cambiar o que tabla nueva puedo crear o creo un nuevo
campo o sea estoy muy perdido con este tema.
  #53 (permalink)  
Antiguo 09/01/2016, 22:35
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Hola Rodocoyote
Quiza por el tiempo algo obiaste y no esta funcionando el codigo que podria ser?


Alexis, no me he movido de aqui actualizando la pagina esperando ayuda de ambos,
creo que almorzare ya que es la media noche, espero poder estar despierto a ver si
me pueden ayudar, y el tema cambiar mi id a cadena no encontre como hacerlo
hay cosas que no entiendo es posible explicarme con las palabras que tengo ahi?
o con un ejemplo que funcione, ya que segun teoricamente se ve que es alentador
pero en funcion no hay resultados de nada,

Quiza sea como los telefonos modernos solo para mostrador sin saber si funciona o no.

Última edición por pilucho; 09/01/2016 a las 23:04 Razón: add argument
  #54 (permalink)  
Antiguo 10/01/2016, 11:04
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Me dado vueltas por otros foros y nadie tiene solucion quiza no exista solucion
o quiza esta mal la idea, pregunte por otros foros ambos codigos que han puesto
como ejemplo y nadie aun responde. esperare a ver si se puede solucionar.

por que no comprendo por que cambiar el ID de autoincrement, a cadena
y busque como cambiar eso por varios lados y no existe al menos
san google no encontro.

alexis dice que se puede hacer por php tampoco encontre creo que dare por finalizado
sin solucion. gracias igual por las buenas intencionses en su ayuda.
  #55 (permalink)  
Antiguo 11/01/2016, 22:37
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Alguna Solucion ?
  #56 (permalink)  
Antiguo 12/01/2016, 03:35
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por pilucho Ver Mensaje
Alguna Solucion ?
Esta noche intentare echarle un vistazo a ver que se puede hacer.
Pero insisto la finalidad del reporte cual es. Simplemente mostrar una tabla de la siguiente manera

Id - ano - campo1 - campo2 - etc
1 - 2015 - lo que sea - lo que sea - etc
2 - 2015 - lo que sea - lo que sea - etc
1 - 2016 - lo que sea - lo que sea - etc
2 - 2015 - lo que sea - lo que sea - etc

O necesariamente el id tiene que estar definido en la bd como año+id teniendo que ser un solo campo de la bd y no 2 separados?

20151 - lo que sea - lo que sea - etc
20152 - lo que sea - lo que sea - etc
20161 - lo que sea - lo que sea - etc
20162 - lo que sea - lo que sea - etc

Ahora mismo estoy con el móvil y no te puedo dar un ejemplo.
  #57 (permalink)  
Antiguo 12/01/2016, 06:43
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Hola xerifandtomas

Gracias por tu apoyo, los anteriores codigos se veian
buenos pero no funcionaron.

1.- el codigo con sql se veia bueno, pero no funciona
que debo cambiar mi tabla y a cadena y no se como es eso
como ir o proceder creo que podria funcionar
esperare que alguien pueda reparar ese codigo alguien que sepa
del tema.

2.- el otro codigo con php, solo me da 2016-1 cada insert
que se hace, siempre es 2016-1, y me pidieron el codigo
completo y aun nada sin respuesta. eso tambien se veia prometedor
bueno quiza los expertos pudieran dar con esa ayuda.

3.- xerifandtomas LO QUE me gustaria me ayuden a solucionar es lo siguiente,
con los codigos ya puestos mas la tablas etc.

TEngo ya contenido en mi SQL, que tiene un ID de autoincrement
La cual en una consulta guarda en otro campo el ultimo ID
mas letra y año quedando mas o menos asi CODIGO-AÑO-ID

Resultado Que guarda en un Campo nuevo llamado "CodigoUnico":
CODIGO-2015-1
CODIGO-2015-2
CODIGO-2015-3
CODIGO-2015-4
ETC... Incrementandose...

Hasta Aqui todo bien ya que esto se incrementa y guarda en un campo nuevo
el codigo unico generado por LETRA AÑO ID,

Ahora el punto es lo siguiente
Por ejemplo el año 2015 ya existe contenido con un "CodigoUnico" que
lo uso como punto de referencia en el registro, para la identidicar
a la persona. (usuarios)

Entonces, en ese año 2015 ya se genero un codigo unico de
identificacion, que va mas o menos por el ID "2878" como resultado
en el campo "CodigoUnico" es CODIGO-2015-2878.

Pero ya es el año 2016 que deberia empezar todo de nuevo, ejemplo
CODIGO-2016-1
CODIGO-2016-2
CODIGO-2016-3
CODIGO-2016-4
ETC... Incrementandose...

Esto es lo que sucede actualmente el año cambia el ID
continua incrementandose.

CODIGO-2015-2878
CODIGO-2015-2879
CODIGO-2015-2880

CODIGO-2016-2880
CODIGO-2016-2881
CODIGO-2016-2882


Y la idea es asi:
CODIGO-2016-1
CODIGO-2016-2
CODIGO-2016-3
CODIGO-2016-4
ETC... Incrementandose...

PARA EL OTRo año deberia continuar asi

CODIGO-2017-1
CODIGO-2017-2
CODIGO-2017-3
CODIGO-2017-4
ETC... Incrementandose...
  #58 (permalink)  
Antiguo 12/01/2016, 20:46
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Ayudita con el ID inicio del año empezar otra vez

A ver...
Prueba con esto

Tabla
Código SQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `Personas` (
  2.   `idp` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `CodigoUnico` text NOT NULL,
  4.   `Anio` datetime DEFAULT NULL,
  5.   `Nombre` VARCHAR(100) NOT NULL DEFAULT '',
  6.   `Apellido` VARCHAR(100) NOT NULL DEFAULT '',
  7.   PRIMARY KEY (`idp`)
  8. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

Script
Código PHP:
<?php
// Datos de conexion
$conexion mysqli_connect("localhost","usu_bd","pwd","nombre_bd");
// Verificar la conexión
if (mysqli_connect_errno()) {printf("Fall&oacute; la conexi&oacute;n: %s\n"mysqli_connect_error()); exit;}

$flag=0;
// Genera las variables $_GET como $get_variable
extract($_GETEXTR_PREFIX_ALL,"get");
if (isset(
$get_action) AND $get_action=='add'){$action=mysqli_real_escape_string($conexion$get_action);}else{$flag=1; echo 'Fallo action.';}
// ¿? idp no lo utilizas para nada
//$idp = $_GET['idp'];

// Genera las variables $_POST como $post_variable
extract($_POST,  EXTR_PREFIX_ALL,"post");
if (isset(
$post_Nombre)){$Nombre=mysqli_real_escape_string($conexion$post_Nombre);}else{$flag=1; echo 'Fallo Nombre.';}
if (isset(
$post_Apellido)){$Apellido=mysqli_real_escape_string($conexion$post_Apellido);}else{$flag=1; echo 'Fallo Apellido.';}
// ¿? Esto tampoco parece que valga para nada 
//$CodigoUnico = $_POST['CodigoUnico'];

// Formato de la fecha 
$fecha="2018-01-13 00:00:00"// Fecha de prueba, desconozco si la vas a generar con GET POST o con date('Y-m-d H:i:s'); 
// Extraemos el año
$ano=explode("-"$fecha);$ano=$ano[0];

//comprobamos que todo vaya bien
if ($flag===0) {echo '<p style="color:green">Recibo $variables ok</p>';}else{echo '<p style="color:red">Error. Revise los campos.</p>';exit;}

// Insertamos la fila
$inserta "INSERT INTO Personas (Nombre,Apellido,Anio) VALUES ('$Nombre','$Apellido','$fecha')";
mysqli_query($conexion,$inserta);
        
// Obtenemos el id del ultimo insert
$ultimo_inser mysqli_insert_id($conexion);

// Obtenemos la cantidad insertados en el año pertinente
$CodigoUnico"SELECT * FROM Personas WHERE YEAR(Anio)=".$ano." ";
if (
$result mysqli_query($conexion$CodigoUnico)) {
    
/* determinar el número de filas del resultado */
    
$row_cnt mysqli_num_rows($result);
    
/* cerrar el resulset */
    
mysqli_free_result($result);
}
// Damos formato al campo CodigoUnico // CODIGO-AÑO-ID. Ejemplo: N-2015-548
$CodigoUnico $row_cnt."-".$ano."-".$ultimo_inser;

// Actualizamos el campo del CodigoUnico del ultimo INSERT
$upsate "UPDATE Personas SET CodigoUnico = '$CodigoUnico' WHERE idp = '$ultimo_inser'";
mysqli_query($conexion,$upsate);

// Mostramos resultados      
if($upsate){
echo 
"Listo <br/>";
echo 
"ID es: " $ultimo_inser."<br/>";
echo 
"CodigoUnico: " $CodigoUnico." (CantidadAnual-A&ntilde;o-ID)<br/>";
} else {echo 
"Error: <br>" mysqli_error($conexion);}

// Cerramos la conexion
mysqli_close($conexion);
?>
Resultado
Código TEXT:
Ver original
  1. |id|CodigoUnico|Anio|Nombre|Apellido
  2. |15|1-2017-15|2017-01-13 00:00:00|pedro|pinto
  3. |16|2-2017-16|2017-01-13 00:00:00|pedro|pinto
  4. |17|3-2017-17|2017-01-13 00:00:00|pedro|pinto
  5. |18|4-2017-18|2017-01-13 00:00:00|pedro|pinto
  6. |19|1-2015-19|2015-01-13 00:00:00|pedro|pinto
  7. |20|2-2015-20|2015-01-13 00:00:00|pedro|pinto
  8. |21|3-2015-21|2015-01-13 00:00:00|pedro|pinto
  9. |47|1-2018-47|2018-01-13 00:00:00|pedro|pinto
  10. |48|2-2018-48|2018-01-13 00:00:00|pedro|pinto
  11. |49|3-2018-49|2018-01-13 00:00:00|pedro|pinto

Última edición por xerifandtomas; 12/01/2016 a las 21:14
  #59 (permalink)  
Antiguo 13/01/2016, 05:37
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Quedo a la espera de tu respuesta. Un saludo.
  #60 (permalink)  
Antiguo 13/01/2016, 06:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Mucho bardo...

Códigos como el descripto pueden generarse automáticamente por medio de TRIGGERS en la base de datos, independizando la aplicación del problema.
Generarlos en la aplicación implica un exceso de acoplamiento entre aplicación y base, lo que se considera un error en diseño de software.

Esto sería un ejemplo. No he tenido en cuenta elcomportamiento y obtención del codigo unico, que a partir de esto debería ingresar como "CODIGO-0000" solamente.
Esto es únicamente un EJEMPLO de como se construiria un trigger que cumpla con lo dicho:

Tabla:
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `Personas` (
  2.   `CodigoUnico` VARCHAR(100) NOT NULL,
  3.   `Anio` datetime  NOT NULL,
  4.   `Nombre` VARCHAR(100) NOT NULL DEFAULT '',
  5.   `Apellido` VARCHAR(100) NOT NULL DEFAULT ''
Nota que he cambiado la definicion del campo numerico, que pasa a ser sin signo. Asi se usan los AI.
Tambien he cambiado el tipo de columna del codigo unico. NO USES TEXT para tipos de datos de esta clase. No es esa su función, y no podrás luego indexarlos, lo que generará errores de consultas y baja performance.

TRigger:
Código MySQL:
Ver original
  1. CREATE DEFINER = CURRENT_USER TRIGGER `test`.`personas_BEFORE_INSERT` BEFORE INSERT ON `personas` FOR EACH ROW
  2. DECLARE countId INT DEFAULT 0;
  3.     COUNT(*)
  4.     personas
  5.     SUBSTRING_INDEX(new.CodigoUnico, '-', -1) = YEAR(anio)
  6.         AND SUBSTRING_INDEX(new.CodigoUnico, '-', 2) = new.CodigoUnico INTO countId;
  7. IF countId = 0 THEN
  8.     SET maxId = 1;
  9.     ELSE
  10.     SET maxId = maxId + 1;
  11.     END IF;
  12.     SET new.CodigoUnico = CONCAT(new.codigounico, '-', MaxId);
  13.    
  14. END $$
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 13/01/2016 a las 06:58

Etiquetas: mysql-php
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:01.