alle rijen uit de db, behalve de laatste 10
ik zit met (volgens mij) iets heel simpels, maar het lukt me maar niet.
Op de pagina 'onlangs.php' worden de 10 laatst toegevoegde producten getoond.
[SQL]
$sql="SELECT * FROM producten ORDER BY id DESC LIMIT 0,10;";
[/SQL]
Nu heb ik ook een 'fotogalerij.php' waarbij alle overige producten getoond moeten worden. Kortom: alle rijen, minus die 10 meest recente.
Ik kom er niet uit :S:S:S:S
Zoiets zat ik al te prutsen:
[SQL]
SELECT * FROM producten ORDER BY id DESC WHERE id NOT IN
(SELECT * FROM producten ORDER BY id DESC LIMIT 0,10)
[/SQL]
Gewijzigd op 01/01/1970 01:00:00 door Herbert Foppen
SELECT * FROM producten ORDER BY id DESC LIMIT 10,99999999
zou moeten zijn. Zal vast iets zij dat op de plaats van 99999999 kan worden ingevuld worden waardoor het oneindig word, wat weet ik niet.
Gewijzigd op 01/01/1970 01:00:00 door Luc de Wit
zou dat werken? :P
Waarschijnlijk is dit je oplossing
Code (php)
1
2
3
2
3
$sql = mysql_query("SELECT JE_PRIMARY_KEY_VELD FROM producten");
$total = mysql_num_rows($sql);
$sql = mysql_query("SELECT * FROM producten ORDER BY id DESC LIMIT 10,{$total}");
$total = mysql_num_rows($sql);
$sql = mysql_query("SELECT * FROM producten ORDER BY id DESC LIMIT 10,{$total}");
Wat het doet. de zachts mogelijke query (je PK veld zal waarschijnlijk bestaan uit intjes) uitvoeren en daarmee de totaal aantal rijen telen. daarna limit je gewoon en begin je bij 10 (de eerste 10, die van onglangs zullen dus genegeerd worden)
Het kan misschien beter met SQL_COUNT_FOUND_ROWS en FOUND_ROWS()
maar daar ben ik niet bekend mee :)
De meest recente wordt aangegeven door een datum en niet door een ID. Id 2 kan in principe later komen als id 5 (dit geeft enkel een unieke waarde dus). Werk dus met datum/tijdstempels.