i can make pagination by query database and it works just fine. but when i use form to search from database, i can only get the first page data, the next page data won't show up.
i just cannot figure out how to maintain the search query.. this is my code. the problem should be in the url links in the pagination, but i just cannot see the problem
<?php
require('koneksi.php');
if(isset($_GET['search'])) {
   $search = $_GET['search'];
   $keyword = $_GET['keyword'];
   $koneksi = mysqli_connect("localhost","root","","mycompany");
   // find out how many rows are in the table
   $sql = "SELECT COUNT(*) FROM product WHERE deskripsi LIKE '%" . $keyword . "%'";
   $result = mysqli_query($koneksi,$sql);
   $rss = mysqli_fetch_row($result);
   $numrows = $rss[0];
   //numbers or rows to show per page
   $rowperpage = 6;
   //find out total pages
   $totalpages = ceil($numrows/$rowperpage);
   //get the current page or set default
   if(isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
       // cast var as int
       $currentpage = (int) $_GET['currentpage'];
   } else {
       // default page number
       $currentpage = 1;
   } // end if
   // if the current page is greater than total pages...
   if($currentpage > $totalpages) {
       // set current page to last page
       $currentpage = $totalpages;
   } // end if
   // if current page is less than total pages...
   if($currentpage < 1) {
        // set current page to first page
        $currentpage = 1;
   } // end if
   // the offset of the list, based on current page
   $offset = ($currentpage - 1) * $rowperpage;
   $sql = "SELECT * FROM product WHERE deskripsi LIKE '%" . $keyword . "%' LIMIT $offset, $rowperpage";
    $result = mysqli_query($koneksi, $sql); 
    // while there are rows to be fetched
    while ($list = mysqli_fetch_assoc($result)) {
        // echo data
        echo $list['product_code'];
        echo "<br>";
        echo $list['deskripsi'];
    }
    /******  build the pagination links ******/
    // range of num links to show
    $range = 6;
    $url = "searchbar.php";
    // if not on page 1, don't show back links
    if($currentpage > 1) {
        // show << link to go to page 1
        echo "<a href='{$_SERVER['PHP_SELF']}?currentpage=1'> << </a>";
        //get previous page num
        $prevpage = $currentpage - 1;
    } // end if
    echo " <li class='arrow'><a href='$url?currentpage=prevpage?&keyword=$keyword?cari=$cari'>«</a></li> ";
    for($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
        // if it is a valid page number
        if(($x > 0) && ($x <= $totalpages)) {
            // if we are on current page
            if($x == $currentpage) {
                echo "<li class=''><a href=''> $x </a></li>";
            } else {
                // make it a link
                //echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'> $x </a> ";
                //echo "<li class=''><a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x </a></li>";
                echo "<li class=''><a href='$url?currentpage=$x?&keyword=$keyword?cari=$cari'> $x </a></li>";
            } // end else
        } // end if
    } // end for
    // if not on last page, show forward and last page links        
    if ($currentpage != $totalpages) {
       // get next page
       $nextpage = $currentpage + 1;
       // echo forward link for next page 
       echo " <li class='arrow'><a href='$url?currentpage=$nextpage?&keyword=$keyword?cari=$cari'>»</a></li> ";
       // echo forward link for lastpage
       // echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'> >> </a> ";
    } // end if
} // end if get search
require('footer.php');
?>
 
     
     
     
    