Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
搜索限制使用分页PHP_Php_Mysql_Search - Fatal编程技术网

搜索限制使用分页PHP

搜索限制使用分页PHP,php,mysql,search,Php,Mysql,Search,我希望搜索功能使用分页,比如谷歌 但我很困惑:( 我的数据库已经有140635条记录,我想要 限制每页50条记录 我的数据供应商是“Hariff”、“Tingali”、“FMC”等 如果我以文件localhost/grid.php的形式编写“Hariff” 此页面重定向到localhost/search_grid.php 这是工作搜索,此表仅显示“Hariff:) 但我在第2页,第3页,下一页,最后一页 此表显示随机供应商(“Hariff”、“Tingali”、“FMC”等) 不仅是供应商“Ha

我希望搜索功能使用分页,比如谷歌 但我很困惑:(

我的数据库已经有140635条记录,我想要 限制每页50条记录

我的数据供应商是“Hariff”、“Tingali”、“FMC”等

如果我以文件localhost/grid.php的形式编写“Hariff”

此页面重定向到localhost/search_grid.php 这是工作搜索,此表仅显示“Hariff:)

但我在第2页,第3页,下一页,最后一页

此表显示随机供应商(“Hariff”、“Tingali”、“FMC”等) 不仅是供应商“Hariff”:(

我很困惑,请帮帮我。。 谢谢

grid.php

    <form method="GET" action="search_grid.php" id="search">
  <input name="q" type="text" size="40" placeholder="Search for Vendor" />
</form>
<?php 
      $q = $_GET['q'];
      include "conection.php";
      include "func_search_grid.php";

        $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
        $limit = 50;
        $startpoint = ($page * $limit) - $limit;

        //to make pagination
        $statement = "`task`";

?>

<table class="bordered">
    <thead>

    <tr>
        <th><center>Vendor</center></th>
    </tr>
    </thead>
     <?php 

            $query = mysql_query("SELECT * FROM {$statement} where vendor like '%{$q}%' LIMIT {$startpoint} , {$limit}");

            while ($row = mysql_fetch_assoc($query)) {
                            ?>
    <tr>
                                    <td>
                                    <?php 
                                    if ($row['vendor']!=NULL) 
                                    {
                                        echo "{$row['vendor']}";
                                    }
                                    else 
                                    {
                                        echo "<center><font color='red'>Vendor NULL</font></center>";
                                    }
                                    ?>
                                    </td>   
    </tr>        
   <?php } ?>

</table>    
    <br/>

<?php
    echo pagination($statement,$limit,$page);
?>
    <?php

   function pagination($query, $per_page = 10,$page = 1, $url = '?'){     
        $q = $_GET['q']; 
        $query = "SELECT COUNT(*) as `num` FROM {$query} where vendor like '%$q%' ";
        $row = mysql_fetch_array(mysql_query($query));
        $total = $row['num'];
        $adjacents = "2"; 

        $page = ($page == 0 ? 1 : $page);  
        $start = ($page - 1) * $per_page;                               

        $prev = $page - 1;                          
        $next = $page + 1;
        $lastpage = ceil($total/$per_page);
        $lpm1 = $lastpage - 1;

        $pagination = "";
        if($lastpage > 1)
        {   
            $pagination .= "<ul class='pagination'>";
                    $pagination .= "<li class='details'>Page $page of $lastpage</li>";
            if ($lastpage < 7 + ($adjacents * 2))
            {   
                for ($counter = 1; $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                }
            }
            elseif($lastpage > 5 + ($adjacents * 2))
            {
                if($page < 1 + ($adjacents * 2))        
                {
                    for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                    {
                        if ($counter == $page)
                            $pagination.= "<li><a class='current'>$counter</a></li>";
                        else
                            $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                    }
                    $pagination.= "<li class='dot'>...</li>";
                    $pagination.= "<li><a href='{$url}page=$lpm1?q=$q'>$lpm1</a></li>";
                    $pagination.= "<li><a href='{$url}page=$lastpage?q=$q'>$lastpage</a></li>";     
                }
                elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
                {
                    $pagination.= "<li><a href='{$url}page=1?q=$q'>1</a></li>";
                    $pagination.= "<li><a href='{$url}page=2?q=$q'>2</a></li>";
                    $pagination.= "<li class='dot'>...</li>";
                    for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                    {
                        if ($counter == $page)
                            $pagination.= "<li><a class='current'>$counter</a></li>";
                        else
                            $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                    }
                    $pagination.= "<li class='dot'>..</li>";
                    $pagination.= "<li><a href='{$url}page=$lpm1?q=$q'>$lpm1</a></li>";
                    $pagination.= "<li><a href='{$url}page=$lastpage?q=$q'>$lastpage</a></li>";     
                }
                else
                {
                    $pagination.= "<li><a href='{$url}page=1?q=$q'>1</a></li>";
                    $pagination.= "<li><a href='{$url}page=2?q=$q'>2</a></li>";
                    $pagination.= "<li class='dot'>..</li>";
                    for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                    {
                        if ($counter == $page)
                            $pagination.= "<li><a class='current'>$counter</a></li>";
                        else
                            $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                    }
                }
            }

            if ($page < $counter - 1){ 
                $pagination.= "<li><a href='{$url}page=$next?q=$q'>Next</a></li>";
                $pagination.= "<li><a href='{$url}page=$lastpage?q=$q'>Last</a></li>";
            }else{
                $pagination.= "<li><a class='current'>Next</a></li>";
                $pagination.= "<li><a class='current'>Last</a></li>";
            }
            $pagination.= "</ul>\n";        
        }


        return $pagination;
    } ?>

搜索网格.php

    <form method="GET" action="search_grid.php" id="search">
  <input name="q" type="text" size="40" placeholder="Search for Vendor" />
</form>
<?php 
      $q = $_GET['q'];
      include "conection.php";
      include "func_search_grid.php";

        $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
        $limit = 50;
        $startpoint = ($page * $limit) - $limit;

        //to make pagination
        $statement = "`task`";

?>

<table class="bordered">
    <thead>

    <tr>
        <th><center>Vendor</center></th>
    </tr>
    </thead>
     <?php 

            $query = mysql_query("SELECT * FROM {$statement} where vendor like '%{$q}%' LIMIT {$startpoint} , {$limit}");

            while ($row = mysql_fetch_assoc($query)) {
                            ?>
    <tr>
                                    <td>
                                    <?php 
                                    if ($row['vendor']!=NULL) 
                                    {
                                        echo "{$row['vendor']}";
                                    }
                                    else 
                                    {
                                        echo "<center><font color='red'>Vendor NULL</font></center>";
                                    }
                                    ?>
                                    </td>   
    </tr>        
   <?php } ?>

</table>    
    <br/>

<?php
    echo pagination($statement,$limit,$page);
?>
    <?php

   function pagination($query, $per_page = 10,$page = 1, $url = '?'){     
        $q = $_GET['q']; 
        $query = "SELECT COUNT(*) as `num` FROM {$query} where vendor like '%$q%' ";
        $row = mysql_fetch_array(mysql_query($query));
        $total = $row['num'];
        $adjacents = "2"; 

        $page = ($page == 0 ? 1 : $page);  
        $start = ($page - 1) * $per_page;                               

        $prev = $page - 1;                          
        $next = $page + 1;
        $lastpage = ceil($total/$per_page);
        $lpm1 = $lastpage - 1;

        $pagination = "";
        if($lastpage > 1)
        {   
            $pagination .= "<ul class='pagination'>";
                    $pagination .= "<li class='details'>Page $page of $lastpage</li>";
            if ($lastpage < 7 + ($adjacents * 2))
            {   
                for ($counter = 1; $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                }
            }
            elseif($lastpage > 5 + ($adjacents * 2))
            {
                if($page < 1 + ($adjacents * 2))        
                {
                    for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                    {
                        if ($counter == $page)
                            $pagination.= "<li><a class='current'>$counter</a></li>";
                        else
                            $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                    }
                    $pagination.= "<li class='dot'>...</li>";
                    $pagination.= "<li><a href='{$url}page=$lpm1?q=$q'>$lpm1</a></li>";
                    $pagination.= "<li><a href='{$url}page=$lastpage?q=$q'>$lastpage</a></li>";     
                }
                elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
                {
                    $pagination.= "<li><a href='{$url}page=1?q=$q'>1</a></li>";
                    $pagination.= "<li><a href='{$url}page=2?q=$q'>2</a></li>";
                    $pagination.= "<li class='dot'>...</li>";
                    for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                    {
                        if ($counter == $page)
                            $pagination.= "<li><a class='current'>$counter</a></li>";
                        else
                            $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                    }
                    $pagination.= "<li class='dot'>..</li>";
                    $pagination.= "<li><a href='{$url}page=$lpm1?q=$q'>$lpm1</a></li>";
                    $pagination.= "<li><a href='{$url}page=$lastpage?q=$q'>$lastpage</a></li>";     
                }
                else
                {
                    $pagination.= "<li><a href='{$url}page=1?q=$q'>1</a></li>";
                    $pagination.= "<li><a href='{$url}page=2?q=$q'>2</a></li>";
                    $pagination.= "<li class='dot'>..</li>";
                    for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                    {
                        if ($counter == $page)
                            $pagination.= "<li><a class='current'>$counter</a></li>";
                        else
                            $pagination.= "<li><a href='{$url}page=$counter?q=$q'>$counter</a></li>";                   
                    }
                }
            }

            if ($page < $counter - 1){ 
                $pagination.= "<li><a href='{$url}page=$next?q=$q'>Next</a></li>";
                $pagination.= "<li><a href='{$url}page=$lastpage?q=$q'>Last</a></li>";
            }else{
                $pagination.= "<li><a class='current'>Next</a></li>";
                $pagination.= "<li><a class='current'>Last</a></li>";
            }
            $pagination.= "</ul>\n";        
        }


        return $pagination;
    } ?>

小贩

字符串中的Get参数应该由
&
-
page=$lastpage&q=$q
Thank's u\u mulder它的工作原理…作为一个adwise,从不推荐的
mysql\u
函数运行到至少
mysqli\u
,阅读有关安全问题的内容,以及OOP-因为下一步要对这段代码进行的操作是完全重写。