PHP / mySQL数据未显示在表

时间:2016-05-15 08:27:58

标签: php mysql

我遇到的问题是MySQL数据没有通过PHP显示 下面是输出数据的代码:

这是 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'的超链接,其中包含问题..

这是郊区搜索页

 <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>

这个问题困扰了我好几个小时,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

individual_item_page.php上,你有几件事情要发生:

  1. 您测试是否存在您可能将$_SESSION["dog_park"]设置为的前2个GET变量,但您未能测试第三个GET变量$_GET['rating']

    < / LI>
  2. 该页面上的SQL语句正在搜索郊区,假设$_SESSION["dog_park"]设置为郊区,尽管它可能设置为$_GET['keyword']$_GET['rating'] 。此外,我不确定您为什么在$_SESSION['dog park']语句中将$result->execute()绑定为数组参数。

  3. 在郊区搜索页面上,您正在搜索表格items,但在您正在搜索的个人搜索页面上dog_parks.items。这是故意的吗?

  4. 重要提示:在您的郊区搜索页面上,您使用预准备语句但手动添加用户输入的变量而不是绑定它,这会破坏绑定参数提供的保护,这是阻止用户输入的数据直接添加到SQL语句中。