PHP-echo$row产生相同的输出


PHP - echo $row produces same output

我遇到了一个问题,下面语句的输出显示了正确的内容,但当我单击其中一个项目(超链接)时,它们都会出现在同一页面,底部行的名称相同:

<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() 有关

无法发布图片抱歉。。。

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"]
等等,

如果希望循环正常工作,则需要将数据分配给不会被覆盖的变量,请在会话和行中使用i来递增,否则使用foreach循环。

for ($i = 0; $row = $stmt->fetch(); ++$i) {
    $_SESSION["dog_park"][$i] = $row[$i];
?>

这将阻止会话数组返回相同的值。通过这种方式,您可以查看每个结果并逐一设置(而不是将所有结果都设置为一个值)。