Pagination error
Posted: Thu Jun 21, 2012 8:58 pm
				
				I am having problem with pagination in php. I have already spent 3 days on this but i couldn't find the error. So finally decided to ask help from you guys.This pagination script simple queries like Select * from employee. But it gives errors when i use join in mysql query(no errors in 1st page. but when i click paginated pages there is no results and error are there).
errors
1.Notice: Undefined variable: lab_id in F:\xampplite\htdocs\chem\view_all_chemicallab.php on line 71
2.Notice: Undefined variable: lab_id in F:\xampplite\htdocs\chem\view_all_chemicallab.php on line 86
php script
This is my approach
Problem is with lab_id passing (As i think). So i have change this line
			errors
1.Notice: Undefined variable: lab_id in F:\xampplite\htdocs\chem\view_all_chemicallab.php on line 71
2.Notice: Undefined variable: lab_id in F:\xampplite\htdocs\chem\view_all_chemicallab.php on line 86
php script
Code: Select all
<?php
require_once('auth.php'); 
include("config.php");     
ini_set('display_errors', 1); 
error_reporting(E_ALL);   
       
if (isset($_POST['lab_id']) && is_numeric($_POST['lab_id'])) 
   {         
     $lab_id = $_POST['lab_id']; 
   } 
$targetpage = "view_all_chemicallab.php";      
    $limit      = 5; 
     
    $query = "SELECT COUNT(*) as num FROM chemical 
JOIN lab_inventory_chemical ON chemical.chemical_code = lab_inventory_chemical.chemical_code 
WHERE lab_inventory_chemical.lab_id= '$lab_id' ";         // this is line 71 
    $total_pages = mysql_fetch_array(mysql_query($query)); 
    $total_pages = $total_pages['num']; 
     
    $stages = 3; 
    $page =isset($_GET['name'])?mysql_escape_string($_GET['page']): ''; 
    if($page){ 
        $start = ($page - 1) * $limit; 
    }else{ 
        $start = 0;     
        }     
     
    // Get page data 
    $query1 = "SELECT * FROM chemical 
JOIN lab_inventory_chemical ON chemical.chemical_code = lab_inventory_chemical.chemical_code 
WHERE lab_inventory_chemical.lab_id='$lab_id' LIMIT $start, $limit";   //this is line 86 
    $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>"; 
     
} 
// get results from database 
     //   $result = mysql_query("SELECT * FROM members") 
       //         or die(mysql_error());   
                 
        // display data in table 
        echo "<div>"; 
        echo "<table id='table1'>"; 
        echo "<tr> <th>Chemical Name</th> <th>Chemical Code</th> <th>Type</th> <th>Edit</th><th>Delete</th><th>Stock</th>  </tr>"; 
        // loop through results of database query, displaying them in the table 
        while($row = mysql_fetch_array( $result )) 
        { 
                 
                // echo out the contents of each row into a table 
                echo "<tr>"; 
                echo '<td>'. $row['name'] . '</td>'; 
                echo '<td>' . $row['chemical_code'] . '</td>'; 
                echo '<td>' . $row['type'] . '</td>'; 
                echo '<td><a href="editchemical.php?chemical_code=' . $row['chemical_code'] . '">Edit</a></td>'; 
                echo "<td><a href=\"delete_chemical.php?chemical_code=" . $row['chemical_code'] ."\" * onclick=\"return confirm('Are you sure you want to delete?')\">Delete</a></td>"; 
                echo '<td><a href="stock_chemical.php?chemical_code=' . $row['chemical_code'] . '">Stock</a></td>'; 
                echo "</tr>"; 
             
         
        } 
       echo "</table>"; 
       echo $paginate; 
       echo "</div>"; 
     
    ?>This is my approach
Problem is with lab_id passing (As i think). So i have change this line
to this$targetpage = "view_all_chemicallab.php";
reason for this is as i think when i click on paginated pages it goes as GET method and i am posting lab_id in the beginning so better to use REQUEST which suits for both methods. But problem is still there Your help is highly appreciated. Thanks in advance$targetpage = "view_all_chemicallab.php?lab_id={$_REQUEST['lab_id']}";
 but still i couldn't make this script work for POST $lab_id value
 but still i couldn't make this script work for POST $lab_id value  
