簡體   English   中英

使用POST更改PHP會話變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM