2016-06-27 23 views
0

私は検索バーを持っています。ユーザーが検索バーで何かを検索すると、クエリが実行され、いくつかの結果が画面に表示されます。php - クエリが実行されるたびにセッション変数をリフレッシュする方法

多次元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 
}?> 

答えて

0

私が正しくあなたの質問を理解していれば、次のようなものは、あなたが求めるものをことがあります

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

新しいセッションを追加する前に、セッションデータをリセットする必要があります。

関連する問題