PDO - MySQL-variabelen gebruiken
Ik loop tegen een knelpunt aan waar ik niet uitkom. Heb van alles geprobeerd maar het lukt mij niet in mij eentje.
Ik maak gebruik van onderstaande functie:
Code:
function fetch_notitie($table, $idn, $start, $limit) {
$query = "SET @i=0;";
// $res = $this->runQuery($query);
// $res->execute();
$query = "SELECT B.id, B.Stmt, B.Amt, B.VDt, B.BDt, B.Nm, B.Acct, B.Ustrd, B.Ind, B.Cd, B.CL, B.OP, B.CL, LS.omg, CB.cl_id, ruimte FROM $table B
LEFT JOIN codes TC ON B.Cd = TC.code
LEFT JOIN letter LS ON LS.letter = TC.letter
LEFT JOIN cl_bg CB ON B.Stmt = CB.cl_bg
LEFT JOIN (SELECT Stmt,
SUM (
CASE
WHEN Ind = 'D' THEN 0 - Amt
ELSE Amt
END) AS ruimte FROM notitie GROUP BY notitie.Stmt ) AS BB ON BB.Stmt = B.Stmt
WHERE B.Amt > 0 AND B.Stmt = ?
ORDER BY B.id ASC";
// $query = "SET @i=0;";
$res = $this->runQuery($query);
$res->execute([$idn]);
$result = $res->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
nou wil ik volgende stuk aan Query toevoegen:
Code:
(@i: = @i + IF(B.Ind = 'C', +B.Amt, -B.Amt)) as saldo
Ik krijg een leeg saldo omdat ik niet weet hoe/waar ik dit stukje in moet verwerken
Code:
SET @i=0
In de phpMyAdmin zet ik
Code:
SET @i=0
voor de SELECT en ik krijg de gewenste resultaat maar het werkt niet in de functie zoals hierboven.
Hopelijk heb ik het duidelijk beschreven. Kan iemand mij hiermee helpen of mij in de juiste richting duwen.
Alvast bedankt voor het meedenken en de moeite.
nyhoo, misschien kun je overwegen om een FUNCTION of PROCEDURE te introduceren? Of een subquery. Of een aparte query. Of je zou wat rekenwerk kunnen verplaatsen naar PHP. Mogelijk doe je er (dan) ook verstandig aan om e.e.a. in een database-transactie te zetten, om te garanderen dat het werk dat je probeert te verzetten één ondeelbare actie is.
Oplossing is, twee keer je query aanroepen.
function fetch_notitie($table, $idn, $start, $limit) {
$query = "SET @i=0;";
$res = $this->runQuery($query);
$res->execute();
$query = "SELECT ......
.....
$res = $this->runQuery($query);
$res->execute();
Gewijzigd op 01/06/2018 16:36:17 door Dymo Masta