我遇到一个问题,下面的语句输出显示正确的内容,但当我点击其中一个项目(超链接)时,它们最终都在同一页面上,底行的名称相同:< / p>
<table class="center">
<!-- Creating a table with the class of 'center' -->
<!-- SEARCH FORM -->
<?php
$KEYWORD = $_POST['keyword'];
$stmt = $conn->prepare("SELECT DISTINCT dog_park_name FROM dog_parks.items WHERE dog_park_name LIKE '%{$KEYWORD}%'");
$stmt->execute();
for ($i = 0; $row = $stmt->fetch(); ++$i) {
$_SESSION["dog_park"] = "$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" ><?php echo $row[0]; ?></a></td> <!-- Add the second cell on the second row -->
</tr>
<?php
}
?>
</table>
我搜索一个关键字并产生以下正确的输出:
TRAMWAY ST DOG OFF LEASH AREA
STRINGYBARK DVE DOG OFF LEASH AREA
当我点击返回的任何结果时,问题就出现了,它们最终都在同一页面上,底行的名称相同。
STRINGYBARK DVE DOG OFF LEASH AREA
STRINGYBARK DVE DOG OFF LEASH AREA
我认为这与$stmt->fetch()
无法发布图片抱歉...
答案 0 :(得分:1)
Note: the change is here --> $row[0] not "$row[0]"
之前$_SESSION["dog_park"] = "$row[0]";
$_SESSION["dog_park".$i] = $row[0];
之后
然后通过
获取会话值
$_SESSION["dog_park0"]; $_SESSION["dog_park1"]; $_SESSION["dog_park2"]; $_SESSION["dog_park3"];等,
答案 1 :(得分:-1)
如果你想让循环正常工作,那么你需要将数据分配给一个不会被覆盖的变量,在会话和行中使用i来增加,否则使用foreach循环。
for ($i = 0; $row = $stmt->fetch(); ++$i) {
$_SESSION["dog_park"][$i] = $row[$i];
?>
这会阻止会话数组返回相同的值。通过这种方式,您可以逐个查看每个结果并将其设置为一个(而不是将所有内容设置为一个值)。