我一直在尝试为我的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
答案 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?
一切看起来都很好并且有效,但这似乎不对!