Código PHP:
DELIMITER $$
DROP PROCEDURE IF EXISTS `bdcpago`.`insertar_alumno`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertar_alumno`(nom varchar(20), apat varchar(20),
amat varchar(20), cg char(2), domi varchar(45), email varchar(45), tel char(15), fnac date, codben char(2))
BEGIN
declare p char(2);
declare id char(5);
select count(codgrado) into p from alumno where codgrado=cg;
set id=(select concat(p,right(('00',p+1),3)));
insert into alumno values(id,nom,apat,amat,cg, domi,email,tel,fnac,codben);
END$$
DELIMITER ;
Código PHP:
CREATE TABLE `alumno` (
`codalu` char(6) COLLATE latin1_general_ci NOT NULL,
`nombre` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
`apat` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
`amat` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
`codgrado` char(2) COLLATE latin1_general_ci DEFAULT NULL,
`domicilio` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`email` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`telef` char(15) COLLATE latin1_general_ci DEFAULT NULL,
`fechanac` date DEFAULT NULL,
`codben` char(2) COLLATE latin1_general_ci DEFAULT NULL,
PRIMARY KEY (`codalu`)
)
Mi problema es que quiero autogenerar el codalu(codigo del alumno) a partir de la cantidad de alumnos por aula y nivel. Todo eso lo cuento por codgrado:
- codgrado - | - grado -- | -- nivel
01 ------- | --- 1 ---- | ---- 1 ----
02 ------- | --- 2 ---- | ---- 1 ----
03 ------- | --- 3 ---- | ---- 1 ----
10 ------- | --- 4 ---- | ---- 2 ----
11 ------- | --- 5 ---- | ---- 2 ----
yo ingreso el codgrado y debe arrojar el codigo asi:
codgrado: 11 o sea grado: 5 nivel: 2 (2=secundaria) ejemplo de codigo 52001
grado: 4 nivel: 1 (1=primaria) ejemplo de codigo 41001
y el codigo debe incrementar a medida que van ingresando alumnos, otro de los problemas es que cuando llega el 52009 y quiero ingresar el 52010 tambien sale un error. o por ejemplo cuando el codgrado es null, tambien sale un error, espero me puedan ayudar.
por ahora la consulta me arroja el siguiente error:
Código PHP:
Error Code : 1241
Operand should contain 1 column(s)
(0 ms taken)