Saanko alla olevassa esimerkissä järjestettyä tulokset ORDER BY:llä mitenkään järjestykseen vai tuleeko tämä tehdä taulukkoon laitto vaiheessa?
$q = "SELECT id FROM osastot"; if(!$r = mysql_query($q)){ return; } while($res = mysql_fetch_assoc($r)) { $k = "SELECT COUNT(osasto) AS maara FROM asiakkaat WHERE osasto = $res[id] AND tyyppi = 0 AND poistettu IS NULL "; if(!$t = mysql_query($k)){ return; } while($result = mysql_fetch_assoc($t)){ if($result['maara'] > 0){ $arr[] = $result['maara']; } } } return $arr;
Et voi järjestää, kun haet rivit yksitellen. Mutta miksi edes teet monta kyselyä? Varmaan kaipaat jotain tällaista:
SELECT osastot.id, COUNT(asiakkaat.id) AS maara FROM osastot JOIN asiakkaat ON -- tai LEFT JOIN, jos haluat myös nollat tuloksiin asiakkaat.osasto = osasto.id AND asiakkaat.tyyppi = 0 AND asiakkaat.poistettu IS NULL GROUP BY osastot.id ORDER BY maara DESC
Vastaisin mielelläni kysymykseesi, mutta joudun myöntämään ettei minulla ole tarpeeksi järkevää vastausta. Kiitän kovasti, että annoit vastauksesi mukana loogisemman vaihtoehdon. Näinhän se kuuluu tehdä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.