JimHark5 Posted November 7, 2003 Share Posted November 7, 2003 Hi, I\'m wondering if there is a simple way to retrieve the last 10 records from an autonumbered id field in a table, but sort these last 10 records by name, or alphabetically ascending. So if my last records are 500-510, I\'d like just the 10 records in that range ordered alphabetically. Say I have a simple sql query (I\'m using a mysql database so no TOP 10 queries, just LIMIT) like: Select id, name FROM articles Is there someway that I can use the LIMIT or some other function to do what I want? I\'ve tried using the LIMIT function in various ways, but if I try to ORDER BY name ASC with it like with LIMIT 10, it will give 10 records, but not records 500-510 sorted alphabetically. I know I could do it either using an additional variable through another recordset or by filtering this query through another recordset, but my page already has enough recordsets, and I\'d like to avoid another if possible. Link to comment https://forums.phpfreaks.com/topic/1320-ordering-last-10-records-alphabetically/ Share on other sites More sharing options...
Barand Posted November 8, 2003 Share Posted November 8, 2003 First, you need to know how many records [php:1:638b3d2544]<?php $sql = \"SELECT COUNT(*) FROM articles\"; $res = mysql_query($sql); list($count) = mysql_fetch_row($res); #want last 10 so $offset = $count - 10; #now get them $sql = \"SELECT id, name FROM articles ORDER BY id LIMIT $offset,10\"; $res = mysql_query($sql); while (list($id,$name) = mysql_fetch_row($res)) { $array[$id] = $name; } #sort stored recs and echo asort($array); foreach($array as $i=>$n) { echo \"$i $n <br>\"; } } ?>[/php:1:638b3d2544] hth Link to comment https://forums.phpfreaks.com/topic/1320-ordering-last-10-records-alphabetically/#findComment-4381 Share on other sites More sharing options...
PHPcadet Posted November 8, 2003 Share Posted November 8, 2003 To get the last ten records of the table you can change your SELECT to: [php:1:02bad73fad]<?php $sql = \"SELECT id, name FROM articles ORDER BY id * -1 LIMIT 0,10\"; ?>[/php:1:02bad73fad] This will eliminate the $offset variable routine. Then you can just store them in the array and sort them as Barand showed. Link to comment https://forums.phpfreaks.com/topic/1320-ordering-last-10-records-alphabetically/#findComment-4386 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.