07.05.2021 14:15
1
Jak získám prosím výsledek dotazu se sum?

Kód:
$total = dibi::query ("SELECT sum(order_total),sum(order_tax) FROM  ....
Proč mi nefunguje?:

Kód:
$total->sum(order_total)
Přitom když dám :

Kód:
print_r($total)
tak tam ten objekt je:

Dibi\Row Object ( [sum(order_total)] => 1051505 [sum(order_tax)] => 182414.54 )

Přes foreach mi to samozřejmě jde, ale chtěl bych psát
Kód:
$total->sum(order_total)
nebo tak něco.

Díky.
07.05.2021 14:19
2
Z principu, chceš aby ti 'sum' prováděla databáze, takže jako výsledek dostaneš jeden záznam s číslem udávající sumu. Pokud bys nad tím dělal sum, tak ti to vždy vrátí 1.
07.05.2021 14:22
3
No chci sum(order_total),sum(order_tax) takže dva součty. A chci to dělat v jednom dotazu. Ten dotaz funguje, jde mi jen o to, jak se dostat přímo k jednomu a druhému výsledku přímo, bez toho, abych to musel prolízat foreachem.

Ten dotaz vrátí:

Dibi\Row Object ( [sum(order_total)] => 1051505 [sum(order_tax)] => 182414.54 )

Jak přistoupím k jednotlivým výsledkům? Myslel bych si:

$total->sum(order_total)
a
$total->sum(order_tax)
ale to nefunguje.
07.05.2021 14:24
4
Kód:
$total = dibi::query ("SELECT sum(order_total) as sum_order_total,sum(order_tax) as sum_order_tax FROM  ....
Kód:
$total->sum_order_total
07.05.2021 14:25
5
Doplnit ten php kod pro dibi o něco jako ->FetchOne()
07.05.2021 14:47
6
Původně odeslal brooks
Kód:
$total = dibi::query ("SELECT sum(order_total) as sum_order_total,sum(order_tax) as sum_order_tax FROM  ....
Kód:
$total->sum_order_total
To bohužel nefunguje.

Ale jde psát:

$total[0]->sum_order_total;

$total[0]->sum_order_tax;
to už funguje..., musí být ale místo query fetchAll

---------- Příspěvek doplněn 07.05.2021 v 14:54 ----------

Původně odeslal josef.jebavy
Doplnit ten php kod pro dibi o něco jako ->FetchOne()
Zkoušel jsem fetchSingle, ale to ignoruje ten druhý součet, vrací to jen první ...

---------- Příspěvek doplněn 07.05.2021 v 14:54 ----------

Původně odeslal josef.jebavy
Doplnit ten php kod pro dibi o něco jako ->FetchOne()
Zkoušel jsem fetchSingle, ale to ignoruje ten druhý součet, vrací to jen první ...
07.05.2021 15:04
7
Píšu to z hlavy, ale zkus nahradit funkci fetchAll funkcí fetch. Přístup k proměnným by pak měl být $total->sum_order_total.
07.05.2021 15:05
8
//result je instance Dibi\Result která obsahuje řádky
$result = dibi::query ("SELECT sum(order_total) AS 'sum_order_total', sum(order_tax) AS 'sum_order_tax' FROM ....");

//získá jeden řádek z SQL výsledku
$row = $result->fetch();

//řádek by měl obsahovat dané proměnné
print( $row->sum_order_total );
print( $row->sum_order_tax );
07.05.2021 17:31
9
Původně odeslal skorozacatecnik
//result je instance Dibi\Result která obsahuje řádky
$result = dibi::query ("SELECT sum(order_total) AS 'sum_order_total', sum(order_tax) AS 'sum_order_tax' FROM ....");

//získá jeden řádek z SQL výsledku
$row = $result->fetch();

//řádek by měl obsahovat dané proměnné
print( $row->sum_order_total );
print( $row->sum_order_tax );
Díky, toto funguje.

Evidentně není to samé dibi::fetch jako $row = $result->fetch();