[英]Changing PHP Session Variable with POST
我一直在嘗試為我的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");
我使用html選擇和表格鏈接到我的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
應該是這樣嗎?
如果會話變量“ result_else”為空,則存儲“基本”查詢。
如果您提供一個新查詢,則用它替換會話變量。
在會話變量中更改查詢后,它將保留該查詢,直到再次更改它為止。
完全未經測試。
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');
我已經設法使該工作幾乎達到id的要求,這顯然不是一個好習慣,但是直到找到更好的解決方案之前,它都將一直有效。
創建了一個名為game-(filter Name).php的頁面,並回顯了包含guard ='Asia'的mysqli查詢,並從game.php添加了相同的格式,因此頁面看起來相同。 有沒有更好的方法用jquery(AJAX)創建表並仍然使用mysql / php?
一切看起來都不錯,並且可以運行,但這似乎不正確!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.