-1

我有多个页面。在每一页上,我都有一个项目列表。所以在第 1 页,我有项目 1-10。在第 2 页,我有项目 11-20。这不是每页十个项目,但重点是第 3 页应该从紧跟第 2 页最后一个数字之后的数字开始。

这些页面有一个简单的数字变量,因此每页的项目计数都可以正常工作,但我希望将其设置在一个地方。

我是 php 的新手,所以我的问题主要是关于如何以及在哪里存储一个变量来跟踪多个文件中的项目计数?

期望的行为:

假设第 1 页有 5 个项目,我在第 1 页上的计数器变量将它们正确编号为:

1.apple
2.grape
3.pear
4.banana
5.orange

但是假设我需要删除香蕉。当我这样做时,第 1 页上的当前计数器工作正常并设置为:

1.apple
2.grape
3.pear
4.orange

但是在第 2 页上,计数器变量设置为 6,并且具有:

6.mango
7.peach
8.watermelon

我想设置持久变量,以便当我删除水果时,它不仅会更新删除的水果所在的当前页面,还会更新之后的每一页。所以它会将第2页调整为:

5.mango
6.peach
7.watermelon

会话会使该更改永久化还是会随着用户的 cookie 消失?

4

3 回答 3

1
<?php
//On the first line of your PHP code
session_start();

//then store your variable in the SESSION array.
$_SESSION['yourCountersNameHere'] = 56;

//You should now have acces to its value from page to page like this

echo $_SESSION['yourCountersNameHere'];
//Should display 56.
?>

您也可以将其存储在数据库中。然后在每一页上检查数据库。

//to connecte
$m_DB = new PDO("mysql:host=".$Host.";dbname=".$DBName."; charset=utf8", $Login, $Password);

//check value in DB
$query = "SELECT * FROM table";
$stmt = $m_DB->prepare($query);
//$param here is empty but normaly it would be a array for all your params like this:
//$param = array('rowname'=>$value, 'rowName2'=>$value2, .........and so on for all the $params you use.);

$getCounter = $stmt->execute($param);
while($Counter = $getCounter->fetch())
{
    //Display the value in your MySQLDB.
    echo $Counter['table.rowName'];
}

如果您使用除 MYSQL 之外的其他数据库类型,则代码应该与您必须进行的一些更改完全相同。

于 2013-09-04T20:24:32.097 回答
0

您可以查看http://www.php.net/manual/en/session.examples.basic.php以了解使用会话的更多信息。

只要用户的 cookie 没有过期,任何放置在会话中的变量都会对用户保持不变。

于 2013-09-04T20:22:27.200 回答
-1

在将访问/更改页面变量的站点的每个页面上,在开头添加以下代码:

<?php
//On the very first line of each file using the variable
session_start();

然后访问/设置请参阅以下内容:

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>

<html>
<body>

<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>

</body>
</html>

此代码将从会话变量“views”中吐出一个

要检查是否已设置某些内容:

<?php
session_start();

if(isset($_SESSION['views']))
    //do something

清除会话变量:

<?php
session_start();
if(isset($_SESSION['views']))
  unset($_SESSION['views']);
?>

删除会话:

<?php
session_destroy();
?>

世界上最好的网站:http: //www.w3schools.com/php/php_sessions.asp

于 2013-09-04T20:29:17.840 回答