Dear Friends iam facing a problem in the pagination. It was working fine in my offline wamp server

when i moves it to the online it was showing Warning: mysql_real_escape_string() expects parameter 2 to be resource, integer given in /home/pps/public_html/news_and_events.php on line 10

Please help me I have gone through all other post in the but I didn't found any solutions for this. please any one can help me in this one of my another website is also showing the same issue I think may be this was happen because of the server php or Mysql upgrade

If any one can help me in this will be a greatfull. Iam not a professional coder So Iam an starter so please help me .If you can corret the code please add it in the reply

Full code was in the past bin : http://pastebin.com/zegXSWLQ

include 'includes/connect.php';
$con = MysqlConnect::getInstance();

$adjacents = 3;
$count = $con->select("SELECT COUNT(*) as tot FROM `bsi_news_and_events` ", false);
$total_pages = $count['tot'];
$targetpage = "news_and_events.php";  //your file name  (the name of this file)
$limit = 5;         //how many items to show per page
$page = isset($_GET['page']) ? mysql_real_escape_string($_GET['page']) : 0;
if ($page)
    $start = ($page - 1) * $limit;    //first item to display on this page
else
    $start = 0;
//echo "SELECT * FROM `achiev` ORDER BY `achiev_id`  LIMIT ".$start." , ".$limit." ";
$result = $con->select("SELECT * FROM `bsi_news_and_events` ORDER BY `id` DESC  LIMIT " . $start . " , " . $limit . " ", true);
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;
$pagination = "";
if ($lastpage > 1) {
    $pagination .= "<div class=\"pagination\">";
    //previous button
    if ($page > 1)
        $pagination.= "<a href=\"$targetpage?page=$prev\" > &nbsp; < &nbsp;</a>";
    else
        $pagination.= "<span class=\"disabled\"> &nbsp; < &nbsp; </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\"> &nbsp; $counter</span>";
            else
                $pagination.= "<a href=\"$targetpage?page=$counter\"> &nbsp; $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\"> &nbsp; $counter</span>";
                else
                    $pagination.= "<a href=\"$targetpage?page=$counter\"> &nbsp; $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)) {
            $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\"> &nbsp; $counter</span>";
                else
                    $pagination.= "<a href=\"$targetpage?page=$counter\"> &nbsp; $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\"> &nbsp; $counter</span>";
                else
                    $pagination.= "<a href=\"$targetpage?page=$counter\"> &nbsp; $counter</a>";
            }
        }
    }

    //next button
    if ($page < $counter - 1)
        $pagination.= "<a href=\"$targetpage?page=$next\">&nbsp; > </a>";
    else

        $pagination.= "<span class=\"disabled\">&nbsp; > </span>";
    $pagination.= "</div>\n";
}
?>

the error says it all mysql_real_escape_string() . page number is not a string, it is an integer.

So, your validation should focus on is_numeric and FILTER_SANITIZE_NUMBER_INT. Make sure to remove ., +, - before evaluating which page should be deliver to your user.

The error was resolved by checking the code once again

Member Avatar for diafol

The error was resolved by checking the code once again

What does that mean?

That means that they found the error and fixed it.

Member Avatar for diafol

It would be nice if the OP elaborated for the sake of others perusing this site. At least an acknowledgement to veedeoo would be nice. E.g. did veedeoo's advice help solve the problem or not?

I... I guess that it was solved by veedeoo's response. I'd mark it as solved by them as they have a nice response here — and it would work.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.