过滤器出了问题,而不是保存数据

时间:2013-11-14 10:10:11

标签: php mysql

我制作了一些代码来过滤我的价格,但它不保存那个过滤器,我发布信息,当我刷新时,所有丢失。它只显示一个过滤页面,我知道更多的项目,但它只显示一页。

if(isset($_POST['sort'])){
    $cena_no = trim($_POST['fl_cena_no']);
    $cena_lidz = trim($_POST['fl_cena_lidz']);
        if(empty($cena_lidz)){
            $cena_lidz = '99999999999999999999999999999999';
        }
        if(empty($cena_no)){
                $cena_no = '0';
        }
            $page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
            $pages = mysql_query("SELECT * FROM zirglietas_pardod");
            $pages = ceil(mysql_result($pages, 0) / 15);
            $querystring = "";
            foreach ($_GET as $key => $value) {
            if ($key != "page") $querystring .= "$key=$value&";
            }
            $result = mysqli_query($con,"SELECT * FROM zirglietas_pardod WHERE cena >= $cena_no AND cena <= $cena_lidz ORDER BY cena ASC LIMIT " . (($page - 1) * 15) . ", 15 ");
}

Mby需要添加会话吗?

(p.s 2小时后我会回来,我可以回答)

2 个答案:

答案 0 :(得分:0)

首先:不要使用mysql:http://us1.php.net/mysql_result。使用PDO或mysqli(就像你已经在它下面做了几行)。

您正在检查是否已设置$_POST['sort']并准备$querystring$pages变量,但您未在示例中使用它们。你到底想要什么?现在有点不清楚,所以我需要猜猜你想要什么。请删除不必要的代码或解释相关原因。

您正在按POST值设置排序。该值只能由该综合浏览量使用。提示:使用var_dump($_POST);查看可以使用的变量。

您可以使用session(和/或Cookie),但另一个技巧是将排序值添加到网址,即index.php?orderby=name&order=desc。由于您正在设置偏移量(LIMIT),我认为这是您想要的。这取决于你。

答案 1 :(得分:0)

Yuhu,现在会话保存数据,编写一些代码......

if(isset($_POST['sort'])){
     $cena_no = mysql_real_escape_string(trim($_POST['fl_cena_no']));
     $cena_lidz = mysql_real_escape_string(trim($_POST['fl_cena_lidz']));
        if(empty($cena_lidz)){
        $cena_lidz = '99999999999999999999999999999999';
        }
        if(empty($cena_no)){
        $cena_no = '0';
        }
        $_SESSION['sort'] = $_POST;
        $result = mysqli_query($con,"SELECT * FROM zirglietas_pardod WHERE cena >= $cena_no AND cena <= $cena_lidz ORDER BY cena ASC");
        }

并阅读

if (isset($_SESSION['sort'])){
        $cena_no = $_SESSION['sort']['fl_cena_no'];
        $cena_lidz = $_SESSION['sort']['fl_cena_lidz'];
        if(empty($cena_lidz)){
        $cena_lidz = '99999999999999999999999999999999';
        }
        if(empty($cena_no)){
        $cena_no = '0';
        }
        $result = mysqli_query($con,"SELECT * FROM zirglietas_pardod WHERE cena >= $cena_no AND cena <= $cena_lidz ORDER BY cena ASC");
                        }

并且破坏会话,现在我可以继续下一步:)