I recently decided to try out a simple PHP/MySQL pagination script I found online. After replacing all the required data and creating a connect.php file with my db information, I got a bunch of errors on the page with the script: here they are, in order:

Warning: include(connect.php) [function.include]: failed to open stream: No such file or directory in /homepages/9/d383324583/htdocs/news/index.php on line 115

Warning: include() [function.include]: Failed opening 'connect.php' for inclusion (include_path='.:/usr/lib/php5') in /homepages/9/d383324583/htdocs/news/index.php on line 115

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in /homepages/9/d383324583/htdocs/news/index.php on line 122

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /homepages/9/d383324583/htdocs/news/index.php on line 122

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homepages/9/d383324583/htdocs/news/index.php on line 122

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in /homepages/9/d383324583/htdocs/news/index.php on line 135

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /homepages/9/d383324583/htdocs/news/index.php on line 135
Results

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homepages/9/d383324583/htdocs/news/index.php on line 236

Warning: include(../includes/footer.php) [function.include]: failed to open stream: No such file or directory in /homepages/9/d383324583/htdocs/news/index.php on line 245

Warning: include() [function.include]: Failed opening '../includes/footer.php' for inclusion (include_path='.:/usr/lib/php5') in /homepages/9/d383324583/htdocs/news/index.php on line 245

What's strange here, is that the folder "d383324583" isn't my database name, although it's similarly formatted.
As for the pagination code itself, it's quite long, but mostly simple:

<?php
    include('connect.php'); 

    $tableName="news_pages";        
    $targetpage = "/news/index.php";    
    $limit = 10; 

    $query = "SELECT COUNT(*) as num FROM $tableName";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages[num];

    $stages = 3;
    $page = mysql_escape_string($_GET['page']);
    if($page){
        $start = ($page - 1) * $limit; 
    }else{
        $start = 0; 
        }   

    // Get page data
    $query1 = "SELECT * FROM $tableName LIMIT $start, $limit";
    $result = mysql_query($query1);

    // Initial page num setup
    if ($page == 0){$page = 1;}
    $prev = $page - 1;  
    $next = $page + 1;                          
    $lastpage = ceil($total_pages/$limit);      
    $LastPagem1 = $lastpage - 1;                    


    $paginate = '';
    if($lastpage > 1)
    {   




        $paginate .= "<div class='paginate'>";
        // Previous
        if ($page > 1){
            $paginate.= "<a href='$targetpage?page=$prev'>previous</a>";
        }else{
            $paginate.= "<span class='disabled'>previous</span>"; }



        // Pages    
        if ($lastpage < 7 + ($stages * 2))   // Not enough pages to breaking it up
        {   
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page){
                    $paginate.= "<span class='current'>$counter</span>";
                }else{
                    $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}                  
            }
        }
        elseif($lastpage > 5 + ($stages * 2))   // Enough pages to hide a few?
        {
            // Beginning only hide later pages
            if($page < 1 + ($stages * 2))        
            {
                for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
                {
                    if ($counter == $page){
                        $paginate.= "<span class='current'>$counter</span>";
                    }else{
                        $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}                  
                }
                $paginate.= "...";
                $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
                $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";     
            }
            // Middle hide some front and some back
            elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
            {
                $paginate.= "<a href='$targetpage?page=1'>1</a>";
                $paginate.= "<a href='$targetpage?page=2'>2</a>";
                $paginate.= "...";
                for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
                {
                    if ($counter == $page){
                        $paginate.= "<span class='current'>$counter</span>";
                    }else{
                        $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}                  
                }
                $paginate.= "...";
                $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>";
                $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>";     
            }
            // End only hide early pages
            else
            {
                $paginate.= "<a href='$targetpage?page=1'>1</a>";
                $paginate.= "<a href='$targetpage?page=2'>2</a>";
                $paginate.= "...";
                for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page){
                        $paginate.= "<span class='current'>$counter</span>";
                    }else{
                        $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";}                  
                }
            }
        }
                // Next
        if ($page < $counter - 1){ 
            $paginate.= "<a href='$targetpage?page=$next'>next</a>";
        }else{
            $paginate.= "<span class='disabled'>next</span>";
            }
        $paginate.= "</div>";            
}
 echo $total_pages.' Results';
 // pagination
 echo $paginate;
?>

<ul>

<?php 
        while($row = mysql_fetch_array($result))
        {

        echo '<li>'.$row['country'].'</li>';

        }
    ?>
</ul>

    <?php include '../includes/footer.php';?>

It is rather colossal, but once again, I gather that it's simple, unless you are, like me, a PHP novice.
If anyone can offer any advece, it would be greatly appreciated.

Recommended Answers

All 5 Replies

It looks like most of the errors are caused by the fact that your connect.php script cannot be found and included, hence your database queries, etc are failing.

It looks like you're in the news subdirectory. Is your connect script in the same directory, one above or elsewhere? Fix that, and I expect a lot of the notices / errors will be resolved.

And with regard to d383324583, I would guess that you're on shared hosting and this is your account ID. Database names are usually prefixed with this on shared hosting plans to avoid name conflicts. Might explain things.

How can I fix the issue with the d383324583 directory? I can't make heads or tails of it.

What issue? You can't change it.

Then how do I link to it so as not to get errors?

Have you corrected the include path to you config.php file?

The d383324583 directory is irrelevant. This simply forms part of the path to your website, htdocs.

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.