Damnit. Forgot to cc to the list, again. Here it is.
---------- Forwarded Message ---------- On Monday 14 January 2002 12:55, you wrote: > hi guys, just looking for verification on this, as i don't think there's > any way to do it.... > > Basically, i want to return the results for a search, but only return the > first 20 results from the start number given.... > LIMIT $start, 20 > BUT... i'd like to have a page 1-whatever so if there are 65 results in > total, then the first 20 will be shown, but there will be options to move > to pages 2,3 or 4. > Obviously, if i use LIMIT, then it won't know that there are 65 in total, > so how would i get around this? do i just have to do the full query, and > then only use the first 20 results in the results set? > just becomes a bit of a problem if there are, say, 8000 results returned! > would it just be best to return the first 200 using LIMIT, and do my pages > for those, with a note that there are more than 200 results, and to refine > the search criteria? > Cheers, > Matt Matt, Here's how I did the "20 results per page". Messy, I know, but it was the only way I figured out how to do it. $query="SELECT * FROM table"; $result=mysql_query($query,$database); $nr=mysql_num_rows($result); /* Here you can slap in a check for how many results you want, ie: */ if($nr>200) { die("Bitch,whine and moan!"); } $nr_pages=(ceil($nr/20)); Or, you could, in the first SELECT statement put in a LIMIT 200, I suppose that would work, too. I'd have to dig into this myself too, as my database will have a tad over 100 000 records when it's done. Then I have two buttons, prev & next that's got a little javascript slapped on them; <INPUT TYPE=button VALUE="previous page" onclick="parent.location='nav.php?nav=true&go=prev';"> etc. Then, in nav.php: if($go=="next") { if($page < $nr_pages && $page >= 0) { $page++; $with= (($page) * 20).","; $what = (($page-1) * 20).","; $query=ereg_replace($what,$with,$query); } } if($go=="prev") { if($page>=1 && $page <= $nr_pages) { $page--; $with = (($page) * 20).","; $what = (($page+1) * 20).","; $query=ereg_replace($what,$with,$query); } } $result=mysql_query($query,$database) print_table(); //processes the query If you got any questions regarding my code, please do drop me a mail. Cheers, Markus ------------------------------------------------------- -- Markus Lervik Linux-administrator with a kungfoo grip Vaasa City Library - Regional Library [EMAIL PROTECTED] +358-6-325 3589 / +358-40-832 6709 -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]