关于mysql:PHP Session仅保存最后一项

PHP Session only saves last item

本问题已经有最佳答案,请猛点这里访问。

在这个问题的后续工作中:在会话中保存数据库行ID以供以后使用

我现在遇到了以下问题。现在(谢天谢地)存储了会话。下一页的内容是动态填充的。但是所有页面都有相同的database id,而不是该链接/项目的特定ID。

我读了一些关于我一遍又一遍地重写会话ID的事实。我需要将会话存储在一个数组中。

所以我做了如下的改变:

1
2
$identi = $row['Id'];
$_SESSION["product_id"] = $identi;

在这方面:

1
2
3
4
5
$identi = $row['Id'];
if(!is_array($_SESSION['product_id'])) {
        $_SESSION['product_id']=array();
    }
        $_SESSION['product_id']=$row['Id'];;

但这仍然只存储会话中最后一个项的ID,而不是单个项。所以我可以让每个项目链接有一个特定的ID。

为了更好地衡量我的SQL查询:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php $sql ="SELECT * FROM assortiment WHERE Categorie = '$productid' ORDER BY Id DESC";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

        echo"";
        $identi = $row['Id'];
        if(!is_array($_SESSION['product_id'])) {
            $_SESSION['product_id'] = array();
            }
            $_SESSION['product_id'] = $row['Id'];;

        echo"<img src='http://www.example.nl/Uploaded_files/Thumbs/" .$row['Fotomateriaal'].".jpg'>";
        echo"";
        echo"" . $row["Product"]."" .  $row["Samenvatting"]."";
        echo"
                   
                        <p style='margin-bottom:20px;width:30px;'><i class='fa fa-heart' aria-hidden='true'>
</p>
                   
               "
;
        echo"<table>
                <tr>
                    <td><i class='fa fa-users' aria-hidden='true'></td>
                    <td><p>
vanaf 10 personen
</p></td>
                </tr>
                <tr>
                    <td><i class='fa fa-clock-o' aria-hidden='true'></td>
                    <td>"
. $row["Tijdsduur"] . " uur</td>
                </tr>
                <tr>
                    <td><i class='fa fa-euro' aria-hidden='true'></td>
                    <td>vanaf"
. $row["VerkoopPP40"] ." p.p. <small>excl btw</small></td>
                </tr>
            </table>"
;

    if(isset($_SESSION['product_id'])){
    echo $_SESSION['product_id'];
    };

    }
} else {
    echo"0 results";
}?>

有人能帮我解决这个问题吗?一如既往地提前感谢您的帮助。


如果要向数组中添加新项,请执行以下操作:

1
$_SESSION['product_id'][] = $row['Id'];

您所做的只是覆盖您的$_SESSION数组中的product_id的值。

编辑:

请看一下这个数组