Forum » Izdelava spletišč » POMOČ-kako narediti execute proceduralne funkcije kreirane v phpmyadminu v PHP-ju?
POMOČ-kako narediti execute proceduralne funkcije kreirane v phpmyadminu v PHP-ju?
gas987123 ::
Pozdravljeni! Rad bi naredil formo te funkcije spodaj v PHPju. Težavo mi povzroča, ker nevem kako bi v phpju naredil setterje (SET) za sifro_delavca, zacetni_datum in koncni_datum, ki jih nujno potrebujem za izračun norme. V phpmyadminu mi execute naredi brez problema.
CREATE DEFINER=`root`@`localhost` FUNCTION `izracun_norme`(`sifra_delavca` INT, `zacetni_datum` DATE, `koncni_datum` DATE) RETURNS float
READS SQL DATA
DETERMINISTIC
BEGIN
declare vdatum_realizacije date;
declare voperacija integer;
declare vstevilo_operacij integer;
declare vminut_dela integer;
declare vmin_kos decimal(5,3);
declare vnorma float;
declare vskupno_minut float;
declare vkonec integer default 0;
declare a float;
declare cur_vrstica cursor for
select datum_realizacije, id_operacija, stevilo_operacij, minut_dela
from vrstica_obracuna where id_delavec=sifra_delavca and datum_realizacije between zacetni_datum and koncni_datum;
declare continue handler for not found set vkonec = 1;
select sum(minut_dela) INTO vskupno_minut from vrstica_obracuna where id_delavec=sifra_delavca and datum_realizacije between zacetni_datum and koncni_datum;
if vskupno_minut = NULL then
set vnorma = 0.0;
else
set vnorma = 0;
open cur_vrstica;
dobi_podatke : LOOP
FETCH cur_vrstica INTO vdatum_realizacije, voperacija, vstevilo_operacij, vminut_dela;
SELECT minut_za_kos INTO vmin_kos FROM operacija WHERE id_operacija=voperacija;
-- set a = (vminut_dela/vskupno_minut);
set vnorma=vnorma + (vminut_dela/vskupno_minut)*(100.0*vstevilo_operacij/(vminut_dela/vmin_kos));
-- set vnorma = vmin_kos;--
IF vkonec = 1 then
leave dobi_podatke;
end if;
end loop dobi_podatke;
end if;
close cur_vrstica;
return vnorma;
end
CREATE DEFINER=`root`@`localhost` FUNCTION `izracun_norme`(`sifra_delavca` INT, `zacetni_datum` DATE, `koncni_datum` DATE) RETURNS float
READS SQL DATA
DETERMINISTIC
BEGIN
declare vdatum_realizacije date;
declare voperacija integer;
declare vstevilo_operacij integer;
declare vminut_dela integer;
declare vmin_kos decimal(5,3);
declare vnorma float;
declare vskupno_minut float;
declare vkonec integer default 0;
declare a float;
declare cur_vrstica cursor for
select datum_realizacije, id_operacija, stevilo_operacij, minut_dela
from vrstica_obracuna where id_delavec=sifra_delavca and datum_realizacije between zacetni_datum and koncni_datum;
declare continue handler for not found set vkonec = 1;
select sum(minut_dela) INTO vskupno_minut from vrstica_obracuna where id_delavec=sifra_delavca and datum_realizacije between zacetni_datum and koncni_datum;
if vskupno_minut = NULL then
set vnorma = 0.0;
else
set vnorma = 0;
open cur_vrstica;
dobi_podatke : LOOP
FETCH cur_vrstica INTO vdatum_realizacije, voperacija, vstevilo_operacij, vminut_dela;
SELECT minut_za_kos INTO vmin_kos FROM operacija WHERE id_operacija=voperacija;
-- set a = (vminut_dela/vskupno_minut);
set vnorma=vnorma + (vminut_dela/vskupno_minut)*(100.0*vstevilo_operacij/(vminut_dela/vmin_kos));
-- set vnorma = vmin_kos;--
IF vkonec = 1 then
leave dobi_podatke;
end if;
end loop dobi_podatke;
end if;
close cur_vrstica;
return vnorma;
end
carota ::
Use the PDO, Luke. ;) (Googlaj "PDO", prvi zadetek)
Mimogrede, zdi se mi, da s kurzorjem rešuješ nekaj, kar bi se dalo po vsej verjetnosti brez.
Mimogrede, zdi se mi, da s kurzorjem rešuješ nekaj, kar bi se dalo po vsej verjetnosti brez.
Zgodovina sprememb…
- spremenil: carota ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | float vs decimalOddelek: Programiranje | 6243 (4376) | Looooooka |
» | SQL trigger OracleOddelek: Programiranje | 1170 (1078) | PunXXX |
» | sql-t stored procedureOddelek: Programiranje | 1056 (923) | detroit |
» | [sql]-stevilka vrsticOddelek: Programiranje | 1128 (991) | bmandl |
» | SQL vprašanjeOddelek: Izdelava spletišč | 2661 (2224) | jerneju |