我想制作一个最近访问过的产品部分。在视图详细信息中,当用户输入产品ID时,$_GET['pid'];
现在想将其存储到$_SESSION['views'];
现在它将存储到会话中。然后它需要显示为数组,因为它需要放入产品的选择查询,然后它将显示在while循环中。
$_SESSION['views']=$_GET['pid'];
现在,当我进入另一个产品视图详细信息页面时。会议将有1, 然后在Query:
SELECT * FROM `property` WHERE id=$_SESSION['views']
但它需要在while循环中显示 在7个产品访问后,第一个将被删除,最新的一个应插入到最后一个会显示新记录。
答案 0 :(得分:0)
$_SESSION['views'] = array();
然后添加新产品
function addProduct($product)
{
$_SESSION['views'][] = $product;
if (count($_SESSION['views']) > 7) {
$removedElement = array_shift($_SESSION['views']);
}
}
查询
SELECT * FROM `property` WHERE id in <?= implode($_SESSION['views']) ?>
如果您需要更多面向对象的方法,请查看SPL。
答案 1 :(得分:0)
如果您想展示所有7种产品,您应该像这样进行查询:
SELECT * FROM `property` WHERE id IN ($productList)
和$ productList应该是产品的ID,用逗号分隔,如下所示:
$productList = join(',', $_SESSION['views']);
现在你需要$ _SESSION ['views']作为ab数组:
if (isset($_SESSION['views'])) {
// add new element
$_SESSION['views'][] = $_GET['pid'];
// remove old elements
if (count($_SESSION['views'] > 7)) array_shift($_SESSION['views']);
} else {
// initialize an array
$SESSION['views'] = array($_GET['pid']);
}