2016-06-23 2 views
0

Я разрабатываю веб-приложение, которое имеет 3 страницы.
first is index.php
который имеет строку поиска, по которой пользователь ищет.
второй является search.php
, который отображает результаты поиска, как result_1, result_2, result_3 с информацией (название, описание, URL) когда пользователь нажимает на любой результат его отправить пользователю последнюю страницу т.е. show.php
и третья страница show.phpphp - нежелательные результаты сеанса

, на котором отображается информация для результата, который пользователь щелкнул.
например (соответствующий URL-адрес будет отображаться с использованием iframe)

Я попытался использовать двухмерный сеансовый массив, который работает неправильно.
, когда пользователь нажимает на любом результате, информация некоторых других результатов является отображением на show.php

я проверить содержимое массива сессии по print_r, это было ненужное содержимое.
Кто-нибудь поможет мне в этом, я делюсь своим фрагментом кода.
search.php

<?php 
session_start(); 
$id = 1; 
while($row = mysqli_fetch_array($sql)) 
         { 

          $title = $row['title']; 
          $description = $row['description']; 
          $url = $row['content_url']; 
          $icon = $row['thumb_icon_url']; 


    $_SESSION['result'][] = Array('title' => $title,'description'=> $description,'content_url' => $url,'icon' => $icon,'id'=> $id); 
    ?> 
    <li name="id" ><a href="show.php?id=<?php echo $id;?>&name=<?php echo $title;?>">View doc</a></li> 
    <?php 
    $id++; 
    ?> 

show.php

<?php 
if(isset($_GET['id'])) 
{ 
$id = $_GET['id']; 
?> 
<div> 
<iframe class="embed-responsive-item item" src="<?php echo $_SESSION['result'][$id]['content_url'];?>"></iframe> 
</div> 

, когда я попытался проверить $_SESSION['result'] я получил это
enter image description here

этот массив должен содержать только результаты запроса .Помощь мне исправить

ответ

1

вы не установив ключ вашего массива:

$_SESSION['result'] = Array(); 
$_SESSION['result'][$id] = Array('title' => $title,'description'=> $description,'content_url' => $url,'icon' => $icon,'id'=> $id); 

добавить session_start(); в вашем show.php

+0

теперь show.php он говорит, «результат» не определен индекс – parvez

+0

Я обновил свой ответ –

+0

еще показывает ту же ошибку, когда я пытаюсь получить доступ $ _SESSION ['result'] [$ id] ['title'] т.е. неизвестный результат индекса – parvez

0

Если я правильно понимаю, ваша проблема в том, что у вас есть нежелательные результаты.

Это в основном потому, что вы всегда добавляете результаты к $ _SESSION ['results'] по всем вашим запросам.

Каждый раз, когда вы запустите search.php, вы будете добавлять элементы в $ _SESSION ['result'], нарушая соответствие $ id и позиции массива.

Я бы инициализировать [ «результат»] $ _SESSION

<?php 
    session_start(); 
    $id = 1; 
    $_SESSION['results'] = []; 
    while($row = mysqli_fetch_array($sql)){ 
    //... 
    } 
Смежные вопросы