开发者

Undefined variable $page in canned pagination script

i've got this pagiantion from "Stranger Studios Web Design" i have problem with page = $_GET['page']; the error is page undefined variable page , and i don't know where the 'page' come from? please any help?

<?php
//php code for making pagination in  the gallery page
    /*
        Place code to connect to your DB here.
    */
    // code to connect to DB.

//    $page = $_REQUEST['page'];
    $connection = @mysql_connect(localhost, 'root', '');
    if (!$connection){
    echo 'not connect';
    }
    mysql_select_db('bena'); // select db

    $tbl_name="gallery";        //your table name
    // How many adjacent pages should be shown on each side?
    $adjacents = 3;

    /*
       First get total number of rows in data table.
       If you have a WHERE clause in your query, make sure you mirror it here.
    */
    $query = "SELECT COUNT(*) as num FROM $tbl_name";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages['num'];

    /* Setup vars for query. */
    $targetpage = "galleryContent.php";     //your file name  (the name of this file)
    $limit = 3;                                 //how many items to show per page
    $page = $_GET['page'];

    if((!$page) || (is_numeric($page) == false) || ($page < 0) || ($page > $total_items)) {
          $page = 1; //default

 }


if(isset($_REQUEST['page']))
    $page = $_REQUEST['page'];
else
    $page = 1;
 // if

    if($page)
    {   $start = ($page - 1) * $limit;  }       //first item to display on this page
    else
    {   $start = 0; }                           //if no page var is given, set start to 0

    /* Get data. */
    $sql = "SELECT name FROM $tbl_name LIMIT $start, $limit";
    $result = mysql_query($sql);

    /* Setup page vars for display. */
    if ($page == 0) $page = 1;                  //if no page var is given, default to 1.
    $prev = $page - 1;                          //previous page is page - 1
    $next = $page + 1;                          //next page is page + 1
    $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items per page, rounded up.
    $lpm1 = $lastpage - 1;                      //last page minus 1

    /*
        Now we apply our rules and draw the pagination object.
        We are actually saving the code to a variable in case we want to draw it more than once.
    */
    $pagination = "";
    if($lastpage > 1)
    {
        $pagination .= "<div class=\"pagination\">";
        //previous button
        if ($page > 1)
            $pagination.= "<a href=\"$targetpage?page=$prev\">« previous</a>";
        else
            $pagination.= "<span class=\"disabled\">« previous</span>";

        //pages
        if ($lastpage < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up
        {
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<span class=\"current\">$counter</span>";
                else
                    $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
            }
        }
        elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some
        {
            //close to beginning; only hide later pages
            if($page < 1 + ($adjacents * 2))
            {
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class=\"current\">$counter</span>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
                }
                $pagination.= "...";
                $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
                $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
            }
            //in middle; hide some front and some back
            elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
  开发者_如何学Python          {
                $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
                $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
                $pagination.= "...";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class=\"current\">$counter</span>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
                }
                $pagination.= "...";
                $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
                $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
            }
            //close to end; only hide early pages
            else
            {
                $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
                $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
                $pagination.= "...";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class=\"current\">$counter</span>";
                    else
                        $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
                }
            }
        }

        //next button
        if ($page < $counter - 1)
            $pagination.= "<a href=\"$targetpage?page=$next\">next »</a>";
        else
            $pagination.= "<span class=\"disabled\">next »</span>";
        $pagination.= "</div>\n";
    }
?>
    <?php
        while($row = mysql_fetch_array($result))
        {

        // Your while loop here
        echo '<table><tr><td><img src='.$row["name"].'/></td></tr>';
        //echo '<tr><td>'.$row["image"].'</td></tr>';
        echo '</table>';
        }
    ?>
<?php=$pagination?>


$_GET contains parameters you pass to the URL and their values. So it is expecting your URL to look like:

http://yoursitename.com/galleryContent.php?page=1

or similar.

Looking at the code they are setting a default just afterward if page isn't set so you could change $page = $_GET['page']; to the following to stop the error -

$page = false;
if (array_key_exists('page', $_GET))
{
    $page = $_GET['page'];
}

If you don't pass page in on the URL though you will always end up with the default page 1.


$page = $_GET['page'];

comes from your URL. IE: http://www.yoursite.com/index.php?page=1 then the $page variable will contain 1.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜