Thank you a lot! That is exactly what i was looking for. -- ================================================== Victor J. Espina S. Gerente de Desarrollo / Software Development Manager Software de Venezuela, S.A. Caracas, Venezuela
Email: [EMAIL PROTECTED] Personal site: http://victorespina.coolfreepages.com MSN: [EMAIL PROTECTED] ================================================== (Elimine 'nospam' en las direcciones email) (Remove 'nospam' in email and MSN address) ================================================== "Tom Rogers" <[EMAIL PROTECTED]> escribió en el mensaje [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > Hi, > > Tuesday, December 3, 2002, 7:37:20 AM, you wrote: > VE> Hi. > > VE> I'm new in PHP. Could you point me where can i download a sample script > VE> about how can i paginate some results? > > VE> TIA > Here is a class that will create a google like pagination of results if that is > what you are after :) > > <? > class page_class { > var $count = 0; //total pages > var $start = 0; //starting record > var $pages = 0; //number of pages available > var $page = 1; //current page > var $maxpages; //shows up to 2 * this number and makes a sliding scale > var $show; //number of results per page > function page_class($count=0,$show=5,$max=9){ > $this->count = $count; > $this->show = $show; > $this->maxpages = $max; > ($this->count % $this->show == 0)? $this->pages = intval($this->count/$this->show) :$this->pages intval($this->count/$this->show) +1; > if(!empty($_GET['search_page'])){ > $this->page = $_GET['search_page']; > $this->start = $this->show * $this->page - $this->show; > } > } > function get_limit(){ > $limit = ''; > if($this->count > $this->show) $limit = 'LIMIT'.$this->start.','.$this->show; > return $limit; > } > function make_head_string($pre){ > $r = $pre.' '; > $end = $this->start + $this->show; > if($end > $this->count) $end = $this->count; > $r .= ($this->start +1).' - '.$end.' of '.$this->count; > return $r; > } > function make_page_string($words,$pre='Result Page:'){ > $r = $pre.' '; > if($this->page > 1){ > $y = $this->page - 1; > $r .= '<a href="'.$_SERVER['PHP_SELF'].'?search_page='.$y.$words.'">Previous</a> '; > } > $end = $this->page + $this->maxpages-1; > if($end > $this->pages) $end = $this->pages; > $x = $this->page - $this->maxpages; > $anchor = $this->pages - (2*$this->maxpages) +1; > if($anchor < 1) $anchor = 1; > if($x < 1) $x = 1; > if($x > $anchor) $x = $anchor; > while($x <= $end){ > if($x == $this->page){ > $r .= '<span class="s">'.$x.'</span> '; > } > else{ > $r.= '<a href="'.$_SERVER['PHP_SELF'].'?search_page='.$x.$words.'">'.$x.'</a> '; > } > $x++; > } > if($this->page < $this->pages){ > $y = $this->page + 1; > $r .= '<a href="'.$_SERVER['PHP_SELF'].'?search_page='.$y.$words.'">Next</a> '; > } > return $r; > } > } > > //Usage > > mysql_connect("**.**.**.**", "******", "********") or die (mysql_error()); > > $Query = "SELECT COUNT(*) AS cnt FROM tabletosearch WHERE fieldtosearch LIKE '%" .$searchword. "%'"; > $query = mysql_query($Query) or die(mysql_error()); > $row = mysql_fetch_array($result); > $count = $row['cnt']; > if($count > 0){ > //start class total number of results,number of results to show,max number of pages on a sliding scale (ends up as 2x this number..ie 20) > $page = new page_class($count,5,10); > $limit = $page->get_limit(); > $Query2= "SELECT * FROM tabletosearch WHERE fieldtosearch LIKE '%" .$searchword. "%' ORDER BY whatever ASC ".$limit; > $result = mysql_query($Query2) or die(mysql_error()); > $hstring = $page->make_head_string('Results'); > $pstring = $page->make_page_string("&searchword=".$searchword."&whatever=".$wha tever);//add the other variables to pass to next page in a similar fashion > echo "<table><tr><td>".$hstring."</td></tr>"; > while($row = mysql_fetch_array($result)){ > echo "<tr><td>".$show_data_here."</td></tr>"; > } > echo "<tr><td>".$pstring."</td></tr></table>"; > } > ?> > Note: the search variables on subsequent pages will be passed by GET method > > > > > > > > > -- > regards, > Tom > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php