2016-07-24 3 views
0

Я пытаюсь передать переменную сессии на следующую страницу, index.php, но я получил ошибку undefined index на foreach($_SESSION['result'] as $row). Могу я знать, что случилось?Передача переменных сеанса на другую страницу

<?php 
session_start(); 
$search = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']); 
$search = $db->real_escape_string($search); 

if (strlen($search) >= 1 && $search !== ' ') { 
    $query = 'SELECT * FROM tablename WHERE name LIKE "%'.$search.'%"'; 
    $result = $db->query($query) or trigger_error($db->error."[$query]"); 


    while($results = $result->fetch_array()) { 
     $resultArray[] = $results; 
    } 

    if (isset($resultArray)) { 
     foreach ($resultArray as $result) { 
      $show_name = preg_replace("/".$search."/i", "<b class='highlight'>".$search."</b>", $result['name']); 
      $show_url = 'index.php'; 
      $out = str_replace('name', $show_name, $html); 
      $out = str_replace('url', $show_url, $out); 
      $_SESSION['result']= $result['name']; 
      echo($out); 
     } 
    } 
} 
?> 

index.php

session_start(); 
<table> 
<?php foreach($_SESSION['result'] as $row){ ?> 
      <tr> 
       <td> 
       <?php echo $row['name'];?> 
       </td> 
       <td> 
       <?php echo $row['description'];?> 
       </td> 
      </tr> 
<?php } ?> 
</table> 
+1

Вы только что отредактировали свое сообщение, чтобы добавить то, что я рекомендовал в своем ответе. Пожалуйста, не изменяйте свой вопрос, чтобы реализовать решение! Это делает решение недействительным и делает невозможным для людей, которые приходят позже, чтобы увидеть ваши ошибки и учиться у них, или дать должное хорошие ответы. – BeetleJuice

+0

Примечание: Неопределенный индекс: результат и Предупреждение: неверный аргумент, предоставленный foreach() – xodebox95

+0

извините, но у меня был session_start(). Это просто, что я забыл написать его здесь – xodebox95

ответ

0

Вы никогда не начать сессию в первом файле. Запустите файл с

<?php  
session_start(); 

Потому что вы пропустили, что, когда вы присваиваете значение $_SESSION['result'] после запросов, ничего не сохраняется в сессии.

Ошибка. Вы имеете в виду для $_SESSION['result'] быть массивом, но вы сохраняете его как строку. Изменение:

$_SESSION['result']= $result['name']; 

Для

$_SESSION['result'][]= $result['name']; 
+0

извините, я не писал его здесь, у меня был сеанс, но ошибки продолжаются: Примечание: Неопределенный индекс: результат и Предупреждение: Недействительный аргумент, предоставленный foreach() – xodebox95

+0

в любом случае, запуск сеанса ничего не решает :( – xodebox95

+0

Повторите попытку с самого начала. После того, как вы положили начало сеанса в начале первого файла, сначала выполните этот файл и убедитесь, что запросы будут запущены должным образом, а затем снова загрузите второй файл. – BeetleJuice

0

если $ _SESSION [ 'результат'] является массивом, то попробуйте, как показано ниже

$_SESSION['result'][]= $result['name']; 

в соответствии с вашим кодом переменной результата сеанса не является массивом

+0

, то из моего index.php, мне нужно добавить xodebox95

+0

нет вам не нужно добавлять еще [] –

+0

не решает его :(все еще получая ту же проблему – xodebox95

Смежные вопросы