Ver Mensaje Individual
  #31 (permalink)  
Antiguo 09/01/2016, 08:32
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
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...