Re: [PHP] Re: google style paginating
The Pear Pager class works like a champeen, too. It'll paginate results however you'd like it to. ~Rob Chris W. Parker wrote: Robert Cummings mailto:[EMAIL PROTECTED] on Thursday, August 21, 2003 4:46 PM said: Don't retrieve ALL the queries then only display a subset. Otherwise what's the point of using the LIMIT clause for conservation of resources? The SELECT COUNT( * ) FROM foo query is usually optimized to be extremely fast so the first query is almost negligible in contrast to the second. Heh... I've never really used COUNT() so I'll have to see how much it speeds up my searching. :) Good idea! Chris. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Re: google style paginating
IMHO a PEAR pager package sounds like a sledgehammer when all that's needed is a hammer. Cheers, Rob. On Fri, 2003-08-22 at 17:59, Rob Yelvington wrote: The Pear Pager class works like a champeen, too. It'll paginate results however you'd like it to. ~Rob Chris W. Parker wrote: Robert Cummings mailto:[EMAIL PROTECTED] on Thursday, August 21, 2003 4:46 PM said: Don't retrieve ALL the queries then only display a subset. Otherwise what's the point of using the LIMIT clause for conservation of resources? The SELECT COUNT( * ) FROM foo query is usually optimized to be extremely fast so the first query is almost negligible in contrast to the second. Heh... I've never really used COUNT() so I'll have to see how much it speeds up my searching. :) Good idea! Chris. -- .-. | Worlds of Carnage - http://www.wocmud.org | :-: | Come visit a world of myth and legend where | | fantastical creatures come to life and the | | stuff of nightmares grasp for your soul.| `-' -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: google style paginating
just split up your total number of results ($num_rows) by the results per page (10, i think) and create a for loop to loop from page1 to pagex, creating a link with offset for each one. simple. Ted Conn [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi I am new to this newsgroup and I plan on replying to all the posts I can for now... but Id like to start out by asking a question. I am trying to paginate my sql results in 10 by 10, which I have been able to do no problem. but what I want to do is have the pages layed out in google style with (1)(2)(3)(4) etc etc and each one is clickeable that will take you to that page. I'll show you the code I am using now for next and back buttons... //located at top of page ?php include(include/conex.php); $link=Conectarse(); ? //start of body, this verifies that so is numeric, divisible by 10, and a valid number ?php $q=SELECT id FROM tblNoticias ORDER BY id ; $result=MYSQL_QUERY($q,$link); $num_rows=(MYSQL_NUM_ROWS($result)); if ( isset($_GET['so']) is_numeric($_GET['so']) ) { if ( ($_GET['so'] $num_rows) || ($_GET['so'] 0) ) $so='0'; else { if ($_GET['so'] % 10) $so='0'; else $so=$_GET['so']; } } else $so='0'; ? //return results ?php $q=SELECT id,titulo,texto,img1_data FROM tblNoticias ORDER BY id DESC LIMIT $so,10; $result=(MYSQL_QUERY($q,$link)); while ($row=(MYSQL_FETCH_ARRAY($result))){ ? // next and back buttons ?PHP if ( $so =10) { $sortback= $so-10; echo A HREF=\noticias_historia.php?so=$sortback\ class=\mainText\ Atras/A ; } ? ?PHP $sortforth=$so + 10; $existencias=MYSQL_QUERY(SELECT id FROM tblNoticias LIMIT $sortforth,10,$link); $existencias=MYSQL_NUM_ROWS($existencias); if ( $existencias 0 ) echo A HREF =\noticias_historia.php?so=$sortforth\ class=\mainText\ Siguiente /A; ? DID I PUT WAY TO MUCH CODE?? Sorry, and I apreciate your help. How can I implement the google style paging into this code? Thank you... Ted Conn Lider de Proyectos [EMAIL PROTECTED] Scinet México S.A. de C.V. +52 (222) 294-05-95 al 97 Sin costo: 01-8000-DOTCOM Puebla · DF · Monterrey www.scinet.com.mx -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Re: google style paginating
Ummm I wouldn't do what these guys suggest (at least not all of it)... perform two queries, one counting the total number of returns the other to actually get the subset. Don't retrieve ALL the queries then only display a subset. Otherwise what's the point of using the LIMIT clause for conservation of resources? The SELECT COUNT( * ) FROM foo query is usually optimized to be extremely fast so the first query is almost negligible in contrast to the second. Cheers, Rob. On Thu, 2003-08-21 at 18:52, John Ryan wrote: just split up your total number of results ($num_rows) by the results per page (10, i think) and create a for loop to loop from page1 to pagex, creating a link with offset for each one. simple. Ted Conn [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi I am new to this newsgroup and I plan on replying to all the posts I can for now... but Id like to start out by asking a question. I am trying to paginate my sql results in 10 by 10, which I have been able to do no problem. but what I want to do is have the pages layed out in google style with (1)(2)(3)(4) etc etc and each one is clickeable that will take you to that page. I'll show you the code I am using now for next and back buttons... //located at top of page ?php include(include/conex.php); $link=Conectarse(); ? //start of body, this verifies that so is numeric, divisible by 10, and a valid number ?php $q=SELECT id FROM tblNoticias ORDER BY id ; $result=MYSQL_QUERY($q,$link); $num_rows=(MYSQL_NUM_ROWS($result)); if ( isset($_GET['so']) is_numeric($_GET['so']) ) { if ( ($_GET['so'] $num_rows) || ($_GET['so'] 0) ) $so='0'; else { if ($_GET['so'] % 10) $so='0'; else $so=$_GET['so']; } } else $so='0'; ? //return results ?php $q=SELECT id,titulo,texto,img1_data FROM tblNoticias ORDER BY id DESC LIMIT $so,10; $result=(MYSQL_QUERY($q,$link)); while ($row=(MYSQL_FETCH_ARRAY($result))){ ? // next and back buttons ?PHP if ( $so =10) { $sortback= $so-10; echo A HREF=\noticias_historia.php?so=$sortback\ class=\mainText\ Atras/A ; } ? ?PHP $sortforth=$so + 10; $existencias=MYSQL_QUERY(SELECT id FROM tblNoticias LIMIT $sortforth,10,$link); $existencias=MYSQL_NUM_ROWS($existencias); if ( $existencias 0 ) echo A HREF =\noticias_historia.php?so=$sortforth\ class=\mainText\ Siguiente /A; ? DID I PUT WAY TO MUCH CODE?? Sorry, and I apreciate your help. How can I implement the google style paging into this code? Thank you... Ted Conn Lider de Proyectos [EMAIL PROTECTED] Scinet México S.A. de C.V. +52 (222) 294-05-95 al 97 Sin costo: 01-8000-DOTCOM Puebla · DF · Monterrey www.scinet.com.mx -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- .-. | Worlds of Carnage - http://www.wocmud.org | :-: | Come visit a world of myth and legend where | | fantastical creatures come to life and the | | stuff of nightmares grasp for your soul.| `-' -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Re: google style paginating
Robert Cummings mailto:[EMAIL PROTECTED] on Thursday, August 21, 2003 4:46 PM said: Don't retrieve ALL the queries then only display a subset. Otherwise what's the point of using the LIMIT clause for conservation of resources? The SELECT COUNT( * ) FROM foo query is usually optimized to be extremely fast so the first query is almost negligible in contrast to the second. Heh... I've never really used COUNT() so I'll have to see how much it speeds up my searching. :) Good idea! Chris. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php