Previously, > [CODE] <snip> > <BODY bgcolor='ivory'> > > <?php > //$s = 14; hard coded as a debug statement > $S= @$_GET['$s'] ; With the above, PHP is looking for the GET parameter name $s, not the value of $s as the the GET parameter name. If you want the latter, change it to $_GET[$s]. IIRC, PHP is not case specific, not like Java and C#. > Echo "\$s on line 69 is - $s<BR />"; //debug statement > ?> <snip> > > [/CODE] On Fri, Feb 4, 2011 at 8:05 AM, Bill Mudry <billmudry@xxxxxxxxxx> wrote: > At 12:11 AM 04/02/2011, Tommy Pham wrote: > > Bill, > > That's a lot of reading ... Anyway, this seems to be a 'general' PHP > question. If I understood you correctly, you're having problem getting PHP > to page the SQL results? If so, look the below code logic and adapt as > necessary: > > $numOfResults = 10; // change this to your need > if( !empty($_GET['page']) && intval($_GET['page']) > 1 ) $currentPage = > intval($_GET['page']) - 1; // change the $_GET['page'] accordingly > elseif (!empty($_GET['page']) && strtolower(trim($_GET['page'])) == 'all') > $currentPage = 'all'; > else $currentPage = 0; > > $sqlQuery = 'SELECT * FROM my_table '; > > If( $currentPage != 'all' ) $sqlQuery .= ' LIMIT > '.$currentPage*$numOfResults.', '.$numOfResults; // see [1] > > $result = mysql_query($sqlQuery); > > Would give you the following: > > ?page=all returns all results > ?page=1 or ?page=0 or ?page= or ? yields 1st batch $numOfResults ( 1 to 10 > ) > ?page=2 yields 2nd batch $numOfResults ( 11 to 20 ) > ?page=3 yields 3rd batch $numOfResults ( 21 to 30 ) > ?page=4 yields 4th batch $numOfResults ( 31 to 40 ) > > Etc.... > > Regards, > Tommy > > Perhaps interesting code but when I said including code would help, I was > referring to > code for the best way of preserving the record counter, $s, when the program > the program > recycles back on itself on PHP_SELF. As mentioned, at present it does not > carry forward > the $s value so it can accumulate with the next page of records and > therefore gets stuck on > page one. > > Thank you for your effort. > > The general code is already there. In fact, if you were to take a closer > look, it is a fairly > sophisticated algorithm with a lot of checks and validations. It is also > very user friendly, > letting users click on "Next >>" to go ahead one page and "<< Prev" to go > backward one > page. > I think you're over complicating things. Paging doesn't depend complicated code algorithm but rather simple math deductions. See the below revised code. > My testing shows that it should work well IF the value of the record counter > would only > transfer on restarting the page. I will try using SESSION today to see if it > will do the job. > > Bill Mudry > Mississauga Revised code: $sqlSearchCount = "SELECT COUNT(*) AS Total FROM species WHERE $searchfield like \"%$querystring%\" order by '$searchfield'"; /* look into [1] */ $result = mysql_query( $sqlSearchCount ); $totalRows = mysql_fetch_assoc('Total'); $numOfResults = 10; $maxPages = ceil( $totalRows / $numOfResults ); if( !empty($_GET['page']) ) { if( strtolower(trim($_GET['page'])) == 'all' ) { $currentPage = 'all'; } else { $currentPage = intval($_GET['page']); if( $currentPage > $maxPages ) $currentPage = 1; elseif ( $currentPage > 1 ) $currentPage--; else $currentPage = 1; } } else $currentPage = 0; $sqlSearch = "SELECT * FROM species WHERE $searchfield like \"%$querystring%\" order by '$searchfield'"; if( $currentPage != 'all' ) $sqlSearch .= ' LIMIT '.($currentPage-1)*$numOfResults.', '.$numOfResults; $result = mysql_query( $sqlSearch ); /* code to display $result */ if( $currentPage > 1 ) echo '<a href="?page='.$currentPage - 1.'">Previous</a>'; if( $currentPage < $maxPages ) echo '<a href="?page='.$currentPage + 1.'">Next</a>'; if( $totalRows > 0 ) echo 'Showing '.($currentPage - 1)*$numOfResults+1.' to '.( $currentPage < $maxPages ) ? ( $currentPage )*$numOfResults : $totalRows .' of total: '.$totalRows; NOTE: The code is not tested, but rather quickly cranked out based on logic. Regards, Tommy [1] http://php.net/mysql_escape_string -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php