Ik heb een database met een tabel. In die tabel is informatie geplaatst en dat is gerangschikt via automatische ID nummers.

Nu gebruik ik deze code:

SELECT * FROM lokaties ORDER BY id ASC LIMIT 3

Maar ik krijg niet wat ik wil. Ik wil dat de laatste 3 worden getoond (Dus degene met de hoogste ID nummers) met degene die het laatst geplaatst is onderaan komt te staan. Dus bijvoorbeeld momenteel staan er 5 rijen in mijn tabel dan laat hij dit zien

3
4
5

Dat is wat ik wil hebben. En als ik een rij toevoeg dat hij dan:

4
5
6

Laat zien... snappen jullie wat ik bedoel? Hoe doe ik dit? Want de code die ik nu gebruik is dus niet goed...
Dan moet je sowieso al
SELECT * FROM lokaties ORDER BY id DESC LIMIT 3
gebruiken!
Zo rangschikt hij die met de hoogste id bovenaan.
jouw methode ransgchikt hij de kleinste bovenaan...
ASC - DESC zie je het verschil? :)
Oke zo kiest hij dus de hoogste ID's maar hoe doe ik dan dat de hoogste onderaan?
dat regel je dus met DESC

SELECT * FROM lokaties ORDER BY id DESC LIMIT 3

of

SELECT * FROM lokaties ORDER BY id LIMIT 3
ja dat desc heb ik er ook ingedaan nu en dan pakt hij inderdaad de laatste drie (met hoogste ID nummer) Maar hij laat ze dan zo zien:

5
4
3

En ik wil dat hij ze zo laat zien:

3
4
5
Hij moet id 1 en 2 niet laten zien?
misschien zoek je dan:
SELECT * FROM lokaties ORDER BY id ASC WHERE id >= 3 LIMIT 3
?

Of neus anders eens in de SQL Tutorial (wel engelstalig, heb geen nederlandse kunnen vinden!)
<?
$sql = mysql_query("SELECT * FROM lokaties ORDER BY id DESC LIMIT 3");
while($array = ksort(mysql_fetch_array($sql)))
{
echo $array['id'];
}
?>

www.php.net/ksort (sorteerd assoc array op key)
www.php.net/krsort (sorteerd assoc array op key achterste voren)
Wij hebben ook een SQL tut, Meneertje de Boer :P
John de Boer schreef op 18.09.2004 16:16
Hij moet id 1 en 2 niet laten zien?
misschien zoek je dan:
SELECT * FROM lokaties ORDER BY id ASC WHERE id >= 3 LIMIT 3
?

Of neus anders eens in de SQL Tutorial (wel engelstalig, heb geen nederlandse kunnen vinden!)


Ja maar als ik een rij toevoeg zeg maar dan moet hij

3
4
5

niet meer laten zien maar dan:

4
5
6

laten zien snap je?
Wat wil je nou?
De laatste 3 toch?
Dan heb je het antwoord toch al gehad? :|
Jah ik wil de laatste drie... maar de laatste onderaan. Ik krijg hem bovenaan dat wil ik niet. En met die WHERE id >= 3 dan pakt hij 4,5,6 en niet 5,6,7 als ik er een 7e rij aan toevoeg. Dus dat werkt niet.

En die

<?
$sql = mysql_query("SELECT * FROM lokaties ORDER BY id DESC LIMIT 3");
while($array = ksort(mysql_fetch_array($sql)))
{
echo $array['id'];
}
?>

werkt helemaal niet... dan krijg ik errors...

Reageren