Autor Zpráva
Easygoer
Profil
1Mám tabulku upominky. Každá upomínka má ve sloupci "priorita" hodnotu 1, 2 nebo 3.
2Potřebuji nějakým nejjednodušším způsobem zjistit, kolik upomínek má hodnotu 1, 2 a 3.
3Musím zadat 3 dotazy typu:
4$vysledek1 = $pripojenidb->query("SELECT COUNT(*) FROM upominky WHERE priorita = 1");
5 
6Nebo to jde nějak jednodušeji? Třeba s pomocí proměnných. Nebo použít multi_query?
Mám tabulku upominky. Každá upomínka má ve sloupci "priorita" hodnotu 12 nebo 3.
Potřebuji nějakým nejjednodušším způsobem zjistit, kolik upomínek má hodnotu 12 a 3.
Musím zadat 3 dotazy typu:
$vysledek1 = $pripojenidb->query("SELECT COUNT(*) FROM upominky WHERE priorita = 1");
 
Nebo to jde nějak jednodušeji? Třeba s pomocí proměnných. Nebo použít multi_query?



SELECT COUNT(*) FROM upominky
WHERE priorita = 1
OR priorita = 2
OR priorita = 3
GROUP BY priorita


Ještě lepší je: SELECT COUNT(*) AS celkem FROM upominky
WHERE priorita = 1
OR priorita = 2
OR priorita = 3
GROUP BY priorita

V MySQL dostanu sloupec celkem se 3 řádky. Není mi ale jasné, jak ty hodnoty dostanu do proměnných v PHP. Poradíte?
Tohle nefunguje:

1$CelkemRadku = Array();
2$i = 0;
3while($priorita = $vysledek1->fetch_assoc())
4  {
5  $CelkemRadku[$i] = $priorita[$i];
6  $i++;
7  }
$CelkemRadku Array();
$i 0;
while($priorita $vysledek1->fetch_assoc())
  {
  $CelkemRadku[$i] = $priorita[$i];
  $i++;
  }
Easygoer
Profil
Vlastně je to jednoduché:
1$CelkemRadku = Array();
2$i = 0;
3while($zaznam = $vysledek1->fetch_assoc())
4  {
5  $CelkemRadku[$i] = $zaznam['celkem'];
6  $i++;
7  }
8echo Join($CelkemRadku, ", ");
$CelkemRadku Array();
$i 0;
while($zaznam $vysledek1->fetch_assoc())
  {
  $CelkemRadku[$i] = $zaznam['celkem'];
  $i++;
  }
echo Join($CelkemRadku"");
Kcko
Profil
Ano, uložíš to třeba do pole.
Ale ta konvence českých proměnných a ještě s velkým písmenem na začátku, kde jsi to viděl? Nedá se to číst.

Jinak místo Array je starý konstrukt => []
Easygoer
Profil
Kcko:
OK. Díky.
Kajman
Profil
Jistější bude vracet i sloupec s priritou, aby se ten součet dobře svázal.

SELECT priorita, COUNT(*) AS celkem
FROM   upominky
GROUP  BY priorita
SELECT priorita, COUNT(*) AS celkem
FROM   upominky
GROUP  BY priorita

Bez určení pořadí si db může vrátit řádky dle libosti. Navíc, pokud tam bude jen jeden typ priority, tak se vám sice vrátí jeden součet jako jediný řádek, ale v původním dotaze nepoznáte, ke které prioritě ten součet patří.
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0