Re: My first post
| From: | Victor Espina | Date: | Wed, 04 Dec 2002 09:59:34 +0000 |
| Subject: | Re: My first post | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-126965@lists.php.net to get a copy of this message | ||
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: vespina@nospam.sdvsa.com
Personal site: http://victorespina.coolfreepages.com
MSN: vespinas@hotmail.com
==================================================
(Elimine 'nospam' en las direcciones email)
(Remove 'nospam' in email and MSN address)
==================================================
"Tom Rogers" <trogers@kwikin.com> escribió en el mensaje
news:128117966657.20021204131944@kwikin.com...
> 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
>