i don't think it would be that hard to do, unless im not understanding... for each league ID count how many teams it has connected. next, make an array that holds the league id and the number of teams connected, then sort by the number of teams connected. then reload your database in the order of your new sorted arrays and load it by the league id (eg. if you have a league with 3 and a league with 5, the array will be something like:
$team_array("leagueID", "TeamNums")
$team_array("12345", 3)
$team_array("67890", 5)
that way you load 12345 before you load 67890 and hence your teams are now displayed in order where the most teams in the league is at the bottom of the page. I'm hoping from now you can sort by date, the easiest way would be to convert the date to a timestamp and sort it then convert it back, displaying the results on multiple pages isn't hard either just when you make you loop to display all the results in a table or whatever, make the loop only go up to the number of results you want per page. If you have any questions just email me.