PHP Session仅保存最后一项[重复]
Posted
技术标签:
【中文标题】PHP Session仅保存最后一项[重复]【英文标题】:PHP Session only saves last item [duplicate] 【发布时间】:2017-05-28 20:34:48 【问题描述】:跟进这个问题:Save database row id in session for use later
我现在遇到了以下问题。会话现在(谢天谢地)已存储。并且下一页的内容是动态填充的。但是所有页面都有相同的database id
,而不是特定于该链接/项目的 id。
我读到一些关于我一遍又一遍地写会话 ID 的事实。我需要将会话存储在一个数组中。
所以我做了以下,我改变了这个:
$identi = $row['Id'];
$_SESSION["product_id"] = $identi;
进入这个:
$identi = $row['Id'];
if(!is_array($_SESSION['product_id']))
$_SESSION['product_id']=array();
$_SESSION['product_id']=$row['Id'];;
但这仍然只存储会话中最后一个项目的 ID,而不是单个项目。所以我可以让每个项目链接到一个特定的 ID。
为了更好地衡量我的 SQL 查询:
<?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 "<a href='/dbtest/dinner/amsterdam/".$row["Slug"]. "/" . $row["Id"] . "'><div class='products'><div class='col-sm-3'><div class='product-img'>";
$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 "</div></div><div class='col-sm-6'>";
echo "<div class='h2-container'><h2>" . $row["Product"]. "</h2></div>" . $row["Samenvatting"]. "";
echo "</div><div class='col-sm-3'><div class='col-sm-12 text-right'>
<div class='border'>
<p style='margin-bottom:20px;width:30px;'><i class='fa fa-heart' aria-hidden='true'></i></p>
</div>
</div>";
echo "<table>
<tr>
<td><i class='fa fa-users' aria-hidden='true'></i></td>
<td><p>vanaf 10 personen</p></td>
</tr>
<tr>
<td><i class='fa fa-clock-o' aria-hidden='true'></i></td>
<td>" . $row["Tijdsduur"] . " uur</td>
</tr>
<tr>
<td><i class='fa fa-euro' aria-hidden='true'></i></td>
<td>vanaf " . $row["VerkoopPP40"] ." p.p. <small>excl btw</small></td>
</tr>
</table></div></div></a>";
if(isset($_SESSION['product_id']))
echo $_SESSION['product_id'];
;
else
echo "0 results";
?>
有人可以帮我解决这个问题吗?一如既往地提前感谢您的帮助。
【问题讨论】:
【参考方案1】:如果你想向数组中添加新项目,你可以这样做:
$_SESSION['product_id'][] = $row['Id'];
您所做的只是覆盖您的 $_SESSION
数组中的 product_id
的值。
编辑:
请看看这个arrays
【讨论】:
如果我使用你的代码。并回显它,它只返回array
?
是的,因为它是一个数组。
但它是否应该显示项目的 ID...我知道数组是什么。
尝试var_dump()
数组,查看值。
一个 var_dump 给我以下值:array(1) [0]=> string(4) "9709"
、array(1) [0]=> string(4) "9708"
等等。它给了我正确的 ID。以上是关于PHP Session仅保存最后一项[重复]的主要内容,如果未能解决你的问题,请参考以下文章