我遇到的问题是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>
页面如何工作的基本概述是,
我有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>
这个问题困扰了我好几个小时,任何帮助都会受到赞赏。
答案 0 :(得分:0)
在individual_item_page.php
上,你有几件事情要发生:
您测试是否存在您可能将$_SESSION["dog_park"]
设置为的前2个GET变量,但您未能测试第三个GET变量$_GET['rating']
。
该页面上的SQL语句正在搜索郊区,假设$_SESSION["dog_park"]
设置为郊区,尽管它可能设置为$_GET['keyword']
或$_GET['rating']
。此外,我不确定您为什么在$_SESSION['dog park']
语句中将$result->execute()
绑定为数组参数。
在郊区搜索页面上,您正在搜索表格items
,但在您正在搜索的个人搜索页面上dog_parks.items
。这是故意的吗?
重要提示:在您的郊区搜索页面上,您使用预准备语句但手动添加用户输入的变量而不是绑定它,这会破坏绑定参数提供的保护,这是阻止用户输入的数据直接添加到SQL语句中。