2016-05-17 5 views
0

У меня есть следующий код, ниже которого предназначается, чтобы сохранить значение $ _SESSION, когда его идет к следующему PHP страницу «individual_item_page.php»PHP - данные не передаются на следующую страницу

ПРИМЕЧАНИЕ: Я имеет жестко долготу & широты для SQL запроса

<table class="center">   
    <!-- SEARCH BY LOCATION --> 
    <?php 
    $LOCATION = $_POST['location']; 
    $result = $conn->prepare("SELECT dog_park_name,3956*2*ASIN(SQRT(POWER(SIN((-27.318672099999997 - latitude)*pi()/180/2),2)+COS(19.286558 * pi()/180) 
    *COS(latitude * pi()/180)*POWER(SIN((152.8500067 -longitude)* pi()/180/2),2))) 
    as distance FROM dog_parks.items having distance < $LOCATION ORDER BY distance;"); 
    $result->execute(); 
    for($i=0; $row = $result->fetch();){ 
     $_SESSION["LOCATION".$i] = $row[0]; 
     ?> 
     <tr><!-- Adding the first table row --> 
      <th>Dog Park</th><!-- Adding the table header --> 
     </tr> 
     <tr><!-- Adding the second table row --> 
      <td> 
       <a href="individual_item_page.php?location='<?php $row[$i] ?>' " > 
        <?php echo $row[$i] ?> 
       </a> 
      </td> 
     </tr>      
    <?php } ?> 
</table> 

Вот результат в URL при выполнении сценария. только показывая " Result

Я думаю, это потому, что есть несколько элементов, выбранных в SQL запросы, например:. Dog_park_name, долгота и широта
мне нужно только для dog_park_name, чтобы следовать через к следующая страница ...

Любые идеи?

+0

и поэтому, когда вы не проверяете наличие ошибок или не запускаете сеанс, вы не получаете никаких результатов. –

+0

__increment counter__ missing in for loop – Saty

+1

Если ваш объект PDO (при условии, что это PDO, а не mysqli), не настроен на выполнение исключений, он будет ошибочным. Перед любым запросом '$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);' поэтому сам запрос будет вызывать ошибки. Вы должны использовать placeholder и 'bindParam()' для '$ LOCATION', вместо того, чтобы поместить значение $ _POST в запрос, так как любое нечисловое значение для' $ LOCATION' нарушит ваш запрос (уязвим для SQL-инъекция). Синтаксис цикла выглядит неполным. –

ответ

2

Проблема в том, что вы не вторите своим $row[$i].

Изменение:

<a href="individual_item_page.php?location='<?php $row[$i] ?>' " > 

To:

<a href="individual_item_page.php?location='<?= $row[$i] ?>' " > 
+0

Спасибо, я пропустил это. – deluxenathan

0

Из кода я пропускаю session_start() кроме того, что ваш для отсутствует i++

Я думаю, что вы Мента использовать что-то вроде:

echo "<table>"; 
while($row = $result->fetch()) 
{ 
    $_SESSION["LOCATION".$i] = $row[0]; 
    echo "<tr>". //Adding the first table row 
    "<th>Dog Park</th>". //Adding the table header 
    "</tr><tr>". //Adding the second table row 
    "<td><a href='individual_item_page.php?location=". $row[$i] ."'>". 
    // line above will give you URL Problems in my opinion 
    // since you are adding not replaceing 
    $row[$i] ."</a></td>". 
    "</tr>". 
} 
echo "</table>"; 

Честно говоря, почему бы не вставить его в URL? Не похоже, что вы используете регулярное выражение для очистки URL-адреса.

2

Вы сделали ошибку при прохождении URL с одной страницы на другую. Вот почему это не перенаправление.

<a href="individual_item_page.php?location='<?php echo $row[$i]; ?>' " > 
Смежные вопросы