2016-05-15 3 views
1

У меня возникли проблемы с данными MySQL не отображаются с помощью PHP
Ниже приведен код, который данные должны быть выведены в:PHP/MYSQL данные не отображаются в таблице

ЭТО individual_item_page.php

<?php 
    if (isset($_GET['suburb'])) 
    { 
     $_SESSION["dog_park"] = $_GET['suburb']; 
    } 
    elseif (isset($_GET['keyword'])) 
    { 
     $_SESSION["dog_park"] = $_GET['keyword']; 
    } 
    else 
    { 
     $_SESSION["dog_park"] = $_GET['rating'] ; 
    } 
    ?> 
    <h1><?php echo $_SESSION["dog_park"]; ?></h1> 
    <table border="1" cellspacing="5" cellpadding="5" width="100%"> 
     <thead> 
      <tr> 
       <th>Park Name</th> 
       <th>Street</th> 
       <th>Suburb</th> 
       <th>Dog Park Area (m2)</th> 
      </tr> 
     </thead> 
     <tbody> 
     <?php 

      $result = $conn->prepare("SELECT * FROM dog_parks.items where suburb = ?"); 
      $result->execute(array($_SESSION['dog_park'])); 
      for($i=0; $row = $result->fetch(); $i++){ 
     ?> 
      <tr> 
       <td><label><?php echo $row['Park_Name']; ?></label></td> 
       <td><label><?php echo $row['Street']; ?></label></td> 
       <td><label><?php echo $row['Suburb']; ?></label></td> 
       <td><label><?php echo $row['Dog_Park_Area_(m2)']; ?></label></td> 

      </tr> 
      <?php } ?> 
     </tbody> 
    </table>  

Ниже страницы выводится после того, как код был выполнен:
(Нет данных)  Visual Output

Основной обзор того, как страница предназначена для работы,
У меня есть 3 вида поиска через
ключевое слово
пригороде
рейтинг

Если я хочу, чтобы искать для парк собак по пригороде Я бы выбрал пригород из выпадающего ящика. (Код внизу страницы)

В таблице затем будут показаны парки собак в этом пригороде/области, которые я затем щелкнул бы по одному из тех парков, которые были отображены (гиперссылки), , которые доставят меня на страницу, проблемы с, «individual_item_page.php»

Ниже приведен код страницы поиска пригорода, который затем имеет гиперссылку на «individual_item_page.php» где проблема ..

эТО SUBURB SEARCH СТРАНИЦА

<table class="center"> <!-- Creating a table with the class of 'center' --> 

     <!-- DROP DOWN BOX --> 
     <?php 
     $SUBURB = $_POST['suburb']; 
       $stmt = $conn->prepare("SELECT dog_park_name from items where suburb='$SUBURB'"); 
       $stmt->execute(); 
      for($i=0; $row = $stmt->fetch();){ 
        $_SESSION["dog_park".$i] = $row[0];    
      ?> 
     <!-- DISPLAY RESULTS --> 
     <tr> <!-- Adding the first table row --> 
     <th>Dog Park</th> <!-- Adding the second table header --> 
     </tr> 
     <tr> <!-- Adding the second table row --> 
     <td><a href="individual_item_page.php?suburb='<?php echo $row[$i] ?>' " ><?php echo $row[$i] ?></a></td>   <!-- Add the second cell on the second row --> 
     </tr> 
       <?php } 
       ?> 

     </table> 

Этот вопрос сбил меня с толку в течение многих часов, любая помощь будет оценена по достоинству.

+0

Вы забыли связать параметры с помощью $ stmt-> bind_param() в individual_item_page.php? –

ответ

0

На individual_item_page.php, у вас есть несколько вещей происходит:

  1. Вы тест на наличие первых 2 GET переменных, которые могут быть устанавливающих $_SESSION["dog_park"], но вы не испытать для третьего ГЭТ переменная, $_GET['rating'].

  2. Вашего SQL заявление на этой странице, ищет пригород, предполагая, что $_SESSION["dog_park"] был установлен в пригород, несмотря на то, что может быть установлено в $_GET['keyword'] или $_GET['rating']. Кроме того, я не уверен, почему вы связываете $_SESSION['dog park'] как параметр массива в своем заявлении $result->execute().

  3. На странице поиска в пригороде вы ищете таблицу items, но на отдельной странице поиска, которую вы ищете dog_parks.items. Было ли это намеренно?

Важное примечание: На странице поиска пригорода, вы используете подготовленное заявление, но вручную добавить пользователя, вводимой переменной вместо его связывания, который поражения защиты, обеспечиваемой обязательных параметров, который должен предотвратить данные, введенные пользователем, непосредственно добавляются в операторы SQL.

+0

[3] Да, это было намеренно, так как страница поиска в пригороде отображает все имена парка собак из выбранного пригорода (выпадающего списка) в таблице элементов, которые затем переходят к «individual_item_page.php». Я все еще разбираюсь в проблемах, чтобы отобразить правильные данные (Новое для PHP) – deluxenathan

+0

Вы подтвердили, что ваш оператор SQL возвращает нужные данные? Вы можете проверить это, выполнив инструкцию вручную в MySQL Admin. Кроме того, более простой способ получить результаты запроса: 'while ($ row = $ result-> fetch()) вместо использования цикла' for'. –

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