Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2015, 05:41
sormonje
 
Fecha de Ingreso: enero-2015
Mensajes: 4
Antigüedad: 9 años, 3 meses
Puntos: 0
Problema con procedure en mysql y phpmyadmin

Hola que tal, soy novato en esto de los procedures estoy intentando hacer uno para que cada que lo manden llamar este haga una consulta a una tabla me regrese el numero de columnas que tiene, lo asigno a una variable hago un while con ese numero
y por cada columna que me regrese hacer un insert en otra tabla, obviamente mi codigo esta mal ya que no le estoy diciendo que columna asigne o como le haga pero estoy perdido, agradeceria cualquier ayuda de antemano gracias este es el codigo que hice que ya se que esta mal :P es solo para ilustrar mi proposito.

Código MySQL:
Ver original
  1. CREATE PROCEDURE historicoPagos(IN correo varchar,IN idc int(20))
  2. DECLARE curso varchar(50);
  3. DECLARE iva int(11);
  4. DECLARE fecha date;
  5. DECLARE banco varchar(30);
  6. DECLARE referencia varchar(50);
  7. DECLARE pagado varchar(2);
  8. DECLARE precioFijado double;
  9. DECLARE nombre varchar(20);
  10. DECLARE apellidoP varchar(20);
  11. DECLARE apellidoM varchar(20);
  12. DECLARE col int(11);
  13.  
  14. SET col = (SELECT pagos.correoPersona FROM pagos WHERE correoPersona like correo AND idcurso = idc);
  15.  
  16. WHILE col > 0 DO
  17.  
  18. SELECT lleva.idmateria,esta.iva,pagos.fechapago,pagos.formadepago,pagos.referencia,pagos.psi,pagos.monto,esta.preciofijado,persona.nombre,persona.apellidop,persona.apellidom
  19. INTO curso,iva,fecha,banco,referencia,psi,monto,precioFijado,nombre,apellidoP,apellidoM
  20. FROM esta
  21. INNER JOIN lleva ON esta.idcurso = lleva.idcursos
  22. INNER JOIN pagos ON (pagos.idcurso = esta.idcurso AND esta.correoAlumno = pagos.correoPersona)
  23. INNER JOIN persona ON (esta.correoAlumno = persona.correoPersona)
  24. WHERE esta.idcurso = idc AND esta.correoAlumno = correo;
  25.  
  26. INSERT INTO pagoseliminados(idCurso, Curso, IVA, FechaPago, Banco, Referencia, PSI, Pagado, TotalPagado, PrecioFijado, CorreoE, Nombre, ApellidoP, ApellidoM)
  27. VALUES(idc,curso,iva,fecha,banco,referencia,psi,"",monto,precioFijado,correo,nombre,apellidoP,apellidoM);
  28.  
  29. SET col = col-1;
  30. END WHILE;