Autor | Zpráva | ||
---|---|---|---|
Adam1999 Profil |
#1 · Zasláno: 13. 3. 2015, 23:15:14
Dobrý den,
Mám takto rozvrženou databázi: ![]() A potřeboval by jsem sečíst všechna čísla ve sloupci ,,price". Zde je můj kod: <?php include_once __DIR__.'/../config/database.php'; $result = dibi::query('SELECT * FROM [sold] WHERE [id_user] = %s', $_SESSION['login_id']); if ($all = $result->fetchAll()) foreach($all as $row) { echo $row->price; } Budu rád za každou radu. Děkuji. |
||
lionel messi Profil |
Adam1999:
„Už si s tím vůbec nevím rady vím že je to nějaká opakování pomocí for nebo while ale vůbec mi nedochází jak to udělat.“ Toto sa rieši bežne už na úrovni SQL pomocou funkcie SUM. Dotaz bude vyzerať zhruba takto: $result = dibi::query('SELECT SUM(price) price FROM [sold] WHERE [id_user] = %s', $_SESSION['login_id']); Malá poznámka: To druhé price nie je omyl, ale tzv. alias. |
||
Alphard Profil |
#3 · Zasláno: 13. 3. 2015, 23:24:23
Jestli jde jen o součet, bylo by nejlepší napsat to přímo do dotazu
select sum(price) soucet_ceny from ... whre ... Pokud jde mj. o součet, tzn. stejně je třeba ty řádky vytáhnout, není problém si v cyklu příčítat hodnoty $sum = 0; foreach ($all as $row ) { $sum += $row->price; } |
||
Adam1999 Profil |
#4 · Zasláno: 14. 3. 2015, 12:01:14
Použil jsem:
$result = dibi::query('SELECT SUM(price) price FROM [sold] WHERE [id_user] = %s', $_SESSION['login_id']); |
||
Adam1999 Profil |
#5 · Zasláno: 14. 3. 2015, 13:18:25
ještě se chci jen zeptat,
Dá se nějak určit zda je hodnota prázdná proto při použití SUM() klasický else nefunguje. Děkuji. |
||
Keeehi Profil |
#6 · Zasláno: 14. 3. 2015, 13:29:50
Pokud nebude existovat žádný záznam, tak výsledek funkce sum bude null
if ($result->fetchSingle() === null) { // žádné řádky neodpovídají id_user = $_SESSION['login_id'] } |
||
Časová prodleva: 8 let
|
0