Diskuze: Problém s SQL a PHP dotazem na víc tabulek a jejich výpis
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Nějaký nápady, prosím?
--Ano, trochu se snažím toto vlákno zviditelnit
Ahoj, neviem či to správne chápem, ale podľa mňa zle používaš GROUP BY. Ak ho použiješ, tak v klauzuly SELECT by mali byť len tie stĺpce, ktoré si v ňom použil + agregačné funkcie (SUM,AVG,...). Niektoré databázy to nevyžadujú, ale malo by to viesť k neočakávaným výsledkom.
Pravdepodobne ak odstrániš group by tak dotaz je v poriadku a zoskupiť si to budeš musieť v PHP s načítanými riadkami. Niečo na štýl
$missions = [];
foreach ($queryResults as $row) {
if (!isset($missions[$row['jmenoMise']]) {
$missions[$row['jmenoMise']] = [];
}
$missions[$row['jmenoMise']][] = [
// údaje o jednotlivom užívateľovi
'user' => $row['uzivatel'],
'status' => $row['dokonceno']
]
}
// po tomto budeš mať $missions v tvare
// nazov misie => pole uzivatelov k misii
Iba malé tipy na záver:
foreach($plneni as $plneni)
dokonca to ani neviem či správne funguje.
Takže nejlepší je nepoužívat GROUP BY v SQL a pak to v PHP nějak teprve rozškatulkovat? Zkusím, díky
Tak to určitě nemyslel, nicméně group by ti zahodí ty zbylé řádky, které mají stejný sloupeček, podle kterého jsi "groupoval". A to se ti zrovna tady moc nehodí.
tak ako vraví Jiří, group by sa ti nehodí v tomto prípade, ale v iných prípadoch s ním nie je žiaden problém
Zobrazeno 6 zpráv z 6.