$admin_online = mysql_query("SELECT * FROM kayttajat WHERE istunto > '1' AND arvo = 'admin'", $connect); $admin_on_tunnus = array(); for ($i = 0; $i < mysql_num_rows($admin_online); $i++) { array_push($admin_on_tunnus, mysql_result($admin_online, $i, "tunnus")); $admin_on_arvo = mysql_result($admin_online, $i, "arvo"); $admin_on_arvo = "@"; sort($admin_on_tunnus); while (list($key, $val) = each($admin_on_tunnus)) { echo "<b>$admin_on_arvo$val</b><br>"; } }
Äskeisen koodinpätkän olisi tarkoitus tulostaa kaikki adminit (jotka ovat online) aakkos-järjestyksessä.
Mutta... tämä jostain syystä, tulostaa adminit seuraavalla tavalla:
Adminnro1
Adminnro2
Adminnro1
Olettaessa tietenkin että adminit ovat Adminnro1 ja Adminnro2.
Pätkä kuitenkin tulostaa oikein, jos admineita on vain yksi.
Siis, mikähän tässä pätkässä mahtaapi olla vialla?
mikset sortaaa jo mysql lausekkeessa (SORT BY tunnus)?
Niko kirjoitti:
mikset sortaaa jo mysql lausekkeessa (SORT BY tunnus)?
Ihan ORDER BY kuiteskin :)
<?php //haetaan VAIN tarvittavat kentät ja tosiaan hoidetaan sorttaus kannan puolella $sql = mysql_query("SELECT tunnus,arvo FROM kayttajat WHERE istunto > 1 AND arvo = 'admin' ORDER BY tunnus", $connect); //käydään tulokset läpi while($row = mysql_fetch_assoc($sql)){ echo $row['tunnus']." - ".$r['arvo']."<br />\n"; } ?>
P.S. Tuo käyttäjien "taso" olisi simppelimpi merkitä ihan numeroilla. Käyttäjätaso 0 on tavallinen käyttäjä ja esim. 10 on admin. Näin on ainakin helpompi jakaa erilaisille käyttäjille erilaisia oikeuksia ja koodikin selkiytyy.
Kiitoksia! Sain toimimaan ajv:n ehdotuksen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.