Ik wil op mijn voorpagina random 4 van de 10 laatste artikelen tonen, echter ik zit met het probleem dat ik niet weet hoe ik de laatste 10artikelen kan laten selecteren..

ik had het volgende bedacht maar dit werkt niet, wie weet een oplossing

SELECT DISTINCT Artikel, ID FROM Artikelen WHERE Checked='1' AND ID > (MAX(ID)-10) ORDER BY RAND() DESC LIMIT 0,4
$sql = "SELECT DISTINC Artikel, ID FROM Artikelen WHERE Checked='1' ORDER BY ID DESC LIMIT 10";

Zo selecteer je de laatste 10 entries uit je database...

ps. Lees net dat dit niet helemaal aan je vraag beantwoord.
dit beantwoord inderdaad niet mijn vraag. Ik wil random 4 artikelen laten genereren uit de laatste 10
Ja er zijn met php natuurlijk genoeg manieren waarop je dat voor elkaar kunt krijgen...


<?php

$aantal = 4; // aantal artikelen
for($i = 0; $i <= 3; $i++)
{
     $index[$i] = rand(1,10);
}

$result = mysql_query("SELECT DISTINCT Artikel, ID FROM Artikelen WHERE Checked='1' ORDER BY ID DESC LIMIT 10");

while($row = mysql_fetch_array($result))
{
    if(in_array($row['ID'],$index))
    {
       // Hier wat je met je artikelen wilt doen
    }
}
?>


Even snel, maar volgens mij zou het moeten werken...
Ik heb een paar subqueries uitgeprobeerd maar kan zo snel geen goede vinden.

Workaround:
SELECT Artikel, ID
FROM Artikelen
WHERE Checked = '1'
ORDER BY ID DESC
LIMIT 10

Dit geeft je de nieuwste tien artikelen. Tijdens het fetchen zet je die in een array. Die array schud je door elkaar met shuffle($array) en je pakt de eerste vier elementen, in een for loop.

Reageren