Hoi iedereen,

Ik heb een spellensysteem, en nu wil ik bij de categorieën limiteren op bijv. 20 spellen. Dat is simpel (LIMIT 0,20).

Maar ik wel dat hij de 20 nieuwste spellen dan laat zien. Da's ook niet moeilijk (ORDER BY toegevoegd DESC).

Nu komt het probleem. Ik heb deze query dus:

SELECT ID, naam, bestand, bestandstype, toegevoegd FROM spellen WHERE categorie = 'Avontuur' ORDER BY toegevoegd desc LIMIT 0, 10


En deze PHP-code om de gamebox te maken:


<td align="left" width="201" class="gamebox"><br>
    <!-- Avontuur -->
    <ul>
    <?php
    while ($avontuur = mysql_fetch_array($avontuurquery, MYSQL_ASSOC)) {
    list(, $klein) = explode(",", $avontuur['bestandstype']);
    ?>
<li><a href="index.php?pagina=spellen&amp;actie=speel&amp;ID=<?php echo $avontuur['ID']; ?>" onmouseover="return mouseoverimage('<?php echo $avontuur['naam']; ?>', '<?php echo $avontuur['bestand'].".".$klein; ?>')" onmouseout="return mouseout()"><?php echo stripslashes(htmlentities($avontuur['naam'])); ?></a><?php 
if (strtotime($avontuur['toegevoegd']) >= time() - 84600) { echo " <span class=\"nieuw\">Nieuw!</span>"; } ?></li>
    <?php } ?></ul>
</td>


Nu wil ik alleen nog dat de namen op alfabetische volgorde worden weergeven. Ik kan het niet meer in de query doen, want daar zit al een ORDER BY in, en ook niet met de phpfunctie sort(), want ik voer een while loop uit.

Wie kan mij helpen om de namen in alfabetische volgorde te laten zien?
@Arjan: We hebben gisteren vastgesteld dat je geen LIMIT in een subquery kunt gebruiken die in een IN() staat. Dat is toch echt wel iets dat MySQL-gerelateerd is.

Ik ben wel met je eens dat bovenstaan probleem veel eenvoudiger is op te lossen, ook in MySQL. 23 queries is gewoon achtelijk veel, dat kán gewoon niet goed zijn.

Edit: Ik had toch al een oplossing met 2 queries gegeven? Heb je dat al geprobeerd?
Ik doel eerder op die code, kom op, deze database opzet is niet over nagedacht en zwaar inefficient.
Zoals ik al zei, ik heb op mijn host geen beschikking voor pgSQL. Ik wil het dus even bij MySQL houden. En ik kan er ook niets aan doen dat dit geen nette oplossing is, ik kan gewoon niet anders.

Reageren