RE:problemas al llamar a 1 store procedure en mysq
hola viridiana mira ahite mando un scrip que hice para un sistema y et amndo como llamarlo en este caso lollamo desde phpy ahi te mando como tomar parametros de salida que me costo mmucho aprender solo y casi nadie me contestaba cuando pregunte jejej
tambien te mando el store
-- llamo al store
$insert_p = " CALL
sp_alta_de_socios( $tipo_de_cuenta, $id_barrio, $estado_civil, $id_localidad, '$nombre',
$nro_doc,'$fecha_nac','$sexo','$telefono','$celular','$email','$dir_calle','$dir_nro_calle',
'$dir_sector','$dir_manzana','$dir_piso', '$dir_dpto','$foto', '$observacion', @id_cuenta_corriente, @id_error)";
-- ejecuto y vuelco los parametros de salida
$r_insert = mysql_query($insert_p,$id_enlace);
//hago otra consulta para obtener el parametro desalida
$sql_id_user = mysql_query("select @id_cuenta_corriente,@id_error");
$res_usuario = mysql_fetch_array($sql_id_user);
$id_cta_cte = $res_usuario['@id_cuenta_corriente'];
$id_error = $res_usuario['@id_error'];
scrip del store
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_alta_de_socios`( par_tipo_de_cuenta integer(4), par_barrios_id INTEGER(4), par_estado_civil integer(10), par_localidad_id integer(10), par_apellido_y_nombre varchar(100),
par_documento integer(4), par_fecha_nacimiento varchar(10), par_sexo varchar(1), par_telefono varchar(20), par_celular varchar(20), par_email varchar(40), par_calle varchar(100), par_numero_calle varchar(4),
par_sector varchar(4), par_manzana varchar(4), par_piso varchar(4), par_dpto varchar(4),
par_foto varchar(255), par_observaciones text, OUT id_cuenta_corriente INTEGER(10), OUT par_error integer(10))
BEGIN
declare fecha_nacimiento date;
declare fecha_alta date;
declare var_id_socio integer(4);
declare var_nro_cuenta varchar(15);
declare mnemo_tipo_cuenta varchar(2);
declare var_id_producto_cuota_societaria int(11);
SET par_error = 0;
SELECT CAST(par_fecha_nacimiento AS date) INTO fecha_nacimiento;
SELECT cta.numero_cuenta INTO var_nro_cuenta
FROM tb_socios s
JOIN tb_cuentas_corrientes cta on s.id_socio = cta.tb_socios_id
WHERE s.documento = par_documento AND s.estado = 'A';
if var_nro_cuenta IS not null then
SET par_error = 1;
END if;
if par_error = 0 then
INSERT INTO tb_socios (tb_barrios_id, tb_localidad_id, tb_estado_civil_id, apellido_y_nombre,
documento, fecha_nacimiento, sexo, telefono, celular, email,
calle, numero_calle, sector, manzana, piso, dpto, foto,
estado, legajo, observaciones )
VALUES (par_barrios_id, par_localidad_id, par_estado_civil, par_apellido_y_nombre,
par_documento, fecha_nacimiento, par_sexo, par_telefono, par_celular, par_email,
par_calle, par_numero_calle, par_sector, par_manzana, par_piso, par_dpto, par_foto, 'A',
'', par_observaciones);
SET var_id_socio = last_insert_id();
if var_id_socio IS not null then
INSERT INTO tb_cuentas_corrientes (tb_tipo_cuenta_id, tb_socios_id, numero_cuenta, fecha_alta)
VALUES (par_tipo_de_cuenta, var_id_socio, '', curdate());
SELECT last_insert_id() INTO id_cuenta_corriente;
SELECT codigo INTO mnemo_tipo_cuenta FROM tb_tipos_de_cuentas WHERE id_tipo_cuenta = par_tipo_de_cuenta;
SELECT concat(mnemo_tipo_cuenta, '-', RIGHT(concat('000000', cast(id_cuenta_corriente AS char)), 6)) INTO var_nro_cuenta;
UPDATE tb_cuentas_corrientes SET numero_cuenta = var_nro_cuenta WHERE id_cuenta = id_cuenta_corriente;
UPDATE tb_socios SET legajo = concat_ws('-',mnemo_tipo_cuenta,par_documento,RIGHT(year(curdate()),2)) WHERE id_socio = var_id_socio;
SET var_id_producto_cuota_societaria = (SELECT id_producto FROM tb_productos WHERE tipo = 'cs');
INSERT INTO tb_productos_por_cuenta (tb_producto_id, tb_cuenta_corriente_id, fecha_subscripcion, estado)
VALUES (var_id_producto_cuota_societaria, id_cuenta_corriente, curdate(), 'A');
END if;
END if;
END
aqui te mando el store pára que veas cualquier cosa estoy para lo que discpongas un saludo grande jose