【发布时间】:2014-01-23 13:52:37
【问题描述】:
我正在处理的这个页面有一个链接列表,我不想附加 url 变量 (.html?id=12345),所以我认为第一次尝试会话可能值得一试。
页面对数据库进行查询,获取行,然后将它们显示在列表中。我遇到的问题是会话变量被 while 结果中的下一行覆盖。所以无论用户点击什么,会话都会携带页面上的最后一个变量。
我认为这是代码放置(重新排列)的问题,但我还没有成功将正确的变量正确传递到下一页。
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
$tourQuery = mysql_query("SELECT * table WHERE ID = '".$page['main_id']."' AND DateTime >= CurDate() ORDER BY DateTime ASC");
$tourcount = mysql_num_rows($tourQuery);
while($tour = mysql_fetch_array($tourQuery))
{
$_SESSION['sessionname'] = $tour['EventID'];
?>
<div class="schedule-row vevent" style="overflow:auto;">
<div class="schedule-button">
<a class="schedlink url" href="<?=$pg['request']?>.html">
View
</a>
</div>
<br clear="all" />
</div>
<?php
}
如您所见,正在为查询的每个结果确定一个会话变量,我只是想弄清楚如何将其传递到下一页而不是页面上的最后一个变量。
如果您认为下一页中的代码是相关的,我可以提供它,但是,这个页面上似乎一切正常,所以我认为专注于上面的代码是有意义的。
所以,请帮帮我。
【问题讨论】:
-
会话不是这样工作的。
$_SESSION是请求之间共享的数组。你可以在里面放任何东西,包括key => value对。但是您需要以某种方式将链接与会话项相关联。您可以使用 GET 或 POST 数据来执行此操作。意思是$_SESSION在这里是多余的。坚持?EventID=$tour['EventID']。 -
如果您不想使用
GET,那么您肯定必须选择POST方法,因为使用会话您无法唯一标识ID 来显示值。
标签: php session session-variables