Laatste 3 laten zien... op volgorde
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...
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? :)
Gewijzigd op 18/09/2004 15:05:00 door John de Boer
Oke zo kiest hij dus de hoogste ID's maar hoe doe ik dan dat de hoogste onderaan?
SELECT * FROM lokaties ORDER BY id DESC LIMIT 3
of
SELECT * FROM lokaties ORDER BY id LIMIT 3
5
4
3
En ik wil dat hij ze zo laat zien:
3
4
5
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!)
Gewijzigd op 18/09/2004 16:17:00 door John de Boer
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$sql = mysql_query("SELECT * FROM lokaties ORDER BY id DESC LIMIT 3");
while($array = ksort(mysql_fetch_array($sql)))
{
echo $array['id'];
}
?>
$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:
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!)
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?
De laatste 3 toch?
Dan heb je het antwoord toch al gehad? :|
En die
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$sql = mysql_query("SELECT * FROM lokaties ORDER BY id DESC LIMIT 3");
while($array = ksort(mysql_fetch_array($sql)))
{
echo $array['id'];
}
?>
$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...
Hij wilt de laatste 3 records ophalen. (Doe je met ORDER BY `field` DESC LIMIT 3)
Maar hij wilt dat ze nog wel oplopend worden weergegeven.
Als je ze ophaalt met order by `field` desc dan is ie aflopend wat Kevin dus niet wilt.
Mvg Sickness
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
$result = mysql_query("SELECT COUNT(*) AS aantal FROM lokaties");
$row = mysql_fetch_object($result);
$start = $row->aantal - 3;
$sql = mysql_query("SELECT * FROM lokaties ORDER BY id ASC LIMIT ".$start.", 3");
while ($array = mysql_fetch_array($sql)) {
echo $array['id'];
}
?>
$result = mysql_query("SELECT COUNT(*) AS aantal FROM lokaties");
$row = mysql_fetch_object($result);
$start = $row->aantal - 3;
$sql = mysql_query("SELECT * FROM lokaties ORDER BY id ASC LIMIT ".$start.", 3");
while ($array = mysql_fetch_array($sql)) {
echo $array['id'];
}
?>
Waarbij je eventueel de twee 3'en nog kan veranderen in een ander getal wat je wil. Nadelen zijn dat het 2 queries zijn en dat als er minder dan 3 rijen in de database staan er LIMIT -1, 3 ofzo wordt uitgevoerd en dus een error oplevert.
Gewijzigd op 19/09/2004 15:19:00 door dutchcamel
Mitch:
Wij hebben ook een SQL tut, Meneertje de Boer :P
Ja klopt, ik heb gezocht op het forum en kwam um hiero tegen ;-)
en ik voel me nu wel klein zeg :-p
Gewijzigd op 19/09/2004 22:53:00 door John de Boer
Sickness:
Volgens mij snappen jullie zijn probleem niet.
Hij wilt de laatste 3 records ophalen. (Doe je met ORDER BY `field` DESC LIMIT 3)
Maar hij wilt dat ze nog wel oplopend worden weergegeven.
Als je ze ophaalt met order by `field` desc dan is ie aflopend wat Kevin dus niet wilt.
Mvg Sickness
Hij wilt de laatste 3 records ophalen. (Doe je met ORDER BY `field` DESC LIMIT 3)
Maar hij wilt dat ze nog wel oplopend worden weergegeven.
Als je ze ophaalt met order by `field` desc dan is ie aflopend wat Kevin dus niet wilt.
Mvg Sickness
Ik denk het toch wel... als er een record bij komt dan wordt de hoogste id toch ook automatisch mee verhoogd?!?!,
maar dan geef jij ook niet de goeie oplossing sickness!
hij geeft bij jou dan
6
5
4
en geen
4
5
6
de 'DESC' moet dus nog weer ge'ASC'd worden zeg maar ;)
en anders hebben Kevin en dutchcamel het antwoord al wel gegeven dunkt me
op deze link is in elk geval meer info over ksort
Gewijzigd op 19/09/2004 23:09:00 door John de Boer