这可能很简单,但它让我疯了。无论如何,我已经创建了一个 PHP 会话。
<?php
session_start();
$_SESSION['sort'] = 'product_name';
$_SESSION['type'] = 'DESC';
$_SESSION['limit'] = '5';
$sort = $_SESSION['sort'];
$type = $_SESSION['type'];
$limit = $_SESSION['limit'];
$query = mysql_query("SELECT * FROM table_name ORDER BY $sort $type LIMIT $offset, $limit");//This query is working...
我创建了一个条件语句来更改会话变量。
<a href="?action=orderList&sort=product_price&type=ASC">Sort Items from Lowest to Highest</a>
我还为产品列表限制创建了一个循环流程。
for($i=10; $i<100; $i+=10){
blah blah.../// Anyway, this is working already... Just give you a hint.
}
考虑到当前“Sort of Items”设置为“product_name”,“Type”设置为DESCENDING(DESC),LIMIT为5;
当用户单击上面的链接对项目进行排序或限制时,我想更改已注册会话的值。
所以我所做的是:
if($_GET['action']=='orderList'){
///I've extracted the values of provided link
$_SESSION['sort'] = $_GET['sort'];
$_SESSION['type'] = $_GET['type'];
$_SESSION['limit'] = $_GET['limit'];
///PUT THEME INTO VARIABLES
$sort = $_SESSION['sort'];
$type = $_SESSION['type'];
$limit = $_SESSION['limit'];
}
现在,会话仅在“?action=orderList”存在时才有效,然后在我导航到另一个页面后,会话变量返回其原始值(排序=产品名称,类型=DESC和限制= 5)。是否有任何方法或其他 PHP 代码强制会话更改其值?
编辑:
请注意,在用户单击包含会话的不同新变量的“链接”后,会话将被链接提供的新变量覆盖。即使用户点击(例如导航)会话也不应该被破坏。