【问题标题】:php - how can i refresh session variables each time when query executesphp - 每次执行查询时如何刷新会话变量
【发布时间】:2016-06-27 17:49:19
【问题描述】:

我有一个搜索栏,当用户通过搜索栏搜索某些内容时,会执行查询并在屏幕上显示一些结果。

我将与结果相关的所有信息存储在多维session 数组中。

每个结果都有链接,当用户单击此链接时,会打开新页面,显示该结果的全部信息。

搜索结果取决于用户输入的词。

我的问题是:假设当用户第一次输入某个词时,它得到了 4 个结果,与这 4 个结果相关的所有信息都存储在会话数组中,但是下次如果用户再次搜索会出现不同的结果,但会话数组仍然有相同的旧值,因为当下一页打开时,它会显示该结果的不同信息(它显示基于上一个结果索引的信息)。

我的代码是:

<?
while($row = mysqli_fetch_array($sql))
{   
    $title = $row['title'];
    $description = $row['description'];
    $url = $row['content_url'];
    $icon = $row['thumb_icon_url'];
?>
<?php
$_SESSION['result'][$id]  = Array('title' => $title,'description'=> $description,'content_url' => $url,'icon' => $icon,'id'=> $id);
?>

新页面代码:

<?php
if(isset($_GET['id']))
{
    $id = $_GET['id'];
    ?>   
    <div id="iframe" class="embed-responsive embed-responsive-16by9 col-md-9">                      
        <iframe  class="embed-responsive-item item" src="https://docs.google.com/gview?url=<?php echo $_SESSION['result'][$id]['content_url'];?>&embedded=true#toolbar=0&navpanes=0&scrollbar=0" frameborder="0"></iframe>
    </div>
    <?php
}?>

【问题讨论】:

    标签: php arrays session


    【解决方案1】:

    如果我正确理解您的问题,您可能会寻求以下内容:

    unset($_SESSION['result']);
    $_SESSION['result'] = array();
    while($row = mysqli_fetch_array($sql))
    {
    // do stuff
    }
    

    您需要在添加新会话数据之前重置会话数据。

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 2021-12-25
      • 2014-11-27
      • 2014-09-02
      • 2016-08-31
      • 2015-12-18
      • 2014-01-15
      • 1970-01-01
      • 2017-04-06
      相关资源
      最近更新 更多