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 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.
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<?
include_once('conectar.php'); // Conexion
$conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or
die ('error'); // Verificar Conexión if (isset($_POST['action']) && $_POST['action'] == 'add') {
if (isset($_GET['idp'])) $idp = $_GET['idp']; // ID de Personas $Nombre = $_POST['Nombre'];
$Apellido = $_POST['Apellido'];
$Anio = $_POST['Anio'];
$CodigoUnico = $_POST['CodigoUnico'];
$inserta = $db->query("INSERT INTO Personas (CodigoUnico,Nombre,Apellido,Anio) VALUES (
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()),
CONCAT(
YEAR(CURDATE()),
'-',
CONVERT(
SUBSTRING((SELECT CodigoUnico FROM Personas AS alias3 ORDER BY CodigoUnico DESC LIMIT 1), 14),
UNSIGNED INTEGER
) + 1
),
CONCAT(YEAR(CURDATE()), '-', 1)
),'$Nombre','$Apellido','$Anio'
)");
if($inserta){
echo "Listo";
} else {
echo "Error: " . $inserta . "<br>" . mysqli_error($conexion); }
}
?>
MIENTRAS probare EL OTRO CODIGO de ejemplo
quiza me resulte con lo de coyote
Seguire esperando ayuda...