使用POST更改PHP会话变量

时间:2014-12-16 21:08:49

标签: php html mysql ajax

我一直在尝试为我的mysql和PHP表创建一些自定义过滤器,如果你看到我以前的帖子,我有点迷失了去哪里。

认为我找到了一个解决方案,但它并不是很有效。在这一点上,安全无关紧要,这只是一个个人项目,但我很乐意让它发挥作用。

所以我使用以下内容存储$ result_else变量:

$_SESSION['result_else'] = $result_else;

$result_else = mysqli_query($con,"SELECT * FROM game WHERE listDate >= NOW() - INTERVAL 1440 MINUTE     GROUP BY id DESC LIMIT 25");

我使用An html select和form连接到我的filter.php

我希望将sql查询更改为此用于测试目的:

<?php
require 'header.php';
require '../games/game.php';
if(isset($_POST['add_region']))
{

$_SESSION['result_else'] = mysqli_query($con,"SELECT * FROM game WHERE listDate >= NOW() - INTERVAL 1440 MINUTE AND guard = 'Asia' GROUP BY id DESC LIMIT 25");


//echo "Entered data successfully\n";
//echo '<a href="index.php">Go home</a>';
}

?>

这是目前没有错误,只显示原来的game.php页面? 因为我尝试了很多东西并且从未使用过SESSION变量,所以难以理解从这里开始的地方。

这也是我的html表格

<form method="POST" action="../inc/filter.php">
<select class="form-control" name="add_region" onchange="this.form.submit();">
  <option value="Asia">Asia</option>
  <option value="Eur">Eur</option>
</select>
    </form>

PS:我对编程很陌生,特别是PHP

2 个答案:

答案 0 :(得分:0)

它应该是什么样的?

您存储基本的&#39;查询会话变量&#39; result_else&#39;是空的。

如果您提供新查询,则用该替换会话变量。

在会话变量中更改查询后,它会一直保留,直到您再次更改它为止。

完全未经测试。

if (empty($_SESSION['result_else']) { // set the basic query
    $_SESSION['result_else'] = "SELECT * FROM game WHERE listDate >= NOW() - INTERVAL 1440 MINUTE     GROUP BY id DESC LIMIT 25";      
}

if(isset($_POST['add_region'])) { // set the new query
    $_SESSION['result_else'] = "SELECT * FROM game WHERE listDate >= NOW() - INTERVAL 1440 MINUTE AND guard = 'Asia' GROUP BY id DESC LIMIT 25";
}

// Alway run the 'current' query to get the results.
$result_else = mysqli_query($con, $_SESSION['result_else');

答案 1 :(得分:0)

我已经设法让这个工作差不多到了什么样的, 这显然不是一个好的做法,但它现在可以使用,直到找到更好的解决方案!

创建了一个名为game-(filter Name).php的页面,只是回显了包含guard ='Asia'的mysqli查询,并在game.php中添加了相同的格式,因此页面看起来一样。有没有更好的方法用jquery(AJAX)创建表并仍然使用mysql / php?

一切看起来都很好并且有效,但这似乎不对!