我有一个用于搜索数据库的HTML表单,表单方法是GET:

<form method="get" action="">


然后我的SQL查询使用值从数据库中选择

我运行SQL,然后具有此函数-(http://pastebin.com/J3RL3MxC)-我在查询下运行

因此,总的来说,它看起来像:

$sql="SELECT * FROM customer ORDER BY company";
$i=0;
$array = ShowRecords($sql, "customer");
foreach($array["results"] as $ret) {

}


我在foreach循环中回显我的结果

这工作正常,但是在浏览该函数创建的页面时,我松了$_GET值,所以我也松了我搜索的内容

我如何保留$_GET值,但要记住$_GET需要删除/更改,以便页面会更改

我已经添加了以下代码:

$query_string = '?';
foreach($_GET as $q => $k) {
    if($q == 'id' or $q == 'pagenum') {
        //
    } else {
        if($q != '') {
            $query_string = '&'.$q.'='.$k;
        }
    }
}


在我的函数的顶部尝试执行所需的操作(也需要删除$ _GET [“ id”]),但它不保留值

保留除指定值以外的所有$ _GET值的最佳方法是什么?

P.S:我知道我应该使用PDO,一旦我解决了这个问题,我将立即使用它,然后我将更改代码以使用PDO

最佳答案

使用http_build_query构建查询字符串,而不要手动执行:
http://php.net/manual/en/function.http-build-query.php

我只是将所有请求变量存储在一个数组中,并根据需要对其进行更新。准备输出任何链接时,只需使用http_build_query生成查询字符串

$request = $_GET;
unset($request['id']);
$request['pagenum'] = 2;
//etc

$query_string = '?' . http_build_query($request);

关于php - 保留$ _GET值,但指定两个除外,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27750144/

10-09 19:52