这是我到目前为止的代码。
<?php
include 'connect.php';
include 'main.php';
$id = $_SESSION['id'];
$page = "page1.php";
$sql_chk = " select * from html where id = '$id' and lastpage = '$page' ";
$rs_chk = mysql_query($sql_chk);
$num_chk = mysql_num_rows($rs_chk);
if ($num_chk == 0) {
mysql_query("INSERT INTO `html` (`id`, `lastpage`) VALUES ('$id', '$page') ");
} else {
$sql = "UPDATE html SET lastpage='$page' WHERE id='$id' ";
mysql_query($sql) or die("MYSQL Query Failed : " . mysql_error());
}
?>
基本上它只是将$ page和$ id插入到一个名为html的表中,并存储您所在的页面。现在我要做的是检查数据库中lastpage
内的数据是否等于“page2.php”|| “page3.php”等...原因是当您第一次访问此页面时,它将为您创建行并添加页面数据和您的用户ID。现在让我们说你转到第2页,我希望它将lastpage
列更新为page2.php。但是如果我回到page1.php,我不希望它再次更新,因为我已经过了那个页面等等......
两个主要问题:
让我说我转到page1并在我的用户ID下将lastpage
设置为page1。然后我转到page2,其中$ page =“page2.php”。它不会使用此脚本覆盖数据。
我需要这个脚本才能检查页面是否等于page2.php,最多是page10.php。如果它位于page2和page10之间,则它不会更新数据库中的数据。虽然它不等于page2,但它只会继续使用脚本。
有人知道我怎么能这样做吗?
我敢打赌,我正在思考这个问题,这实际上比我想的要容易,但我整天都在编码而且我想不清楚。
使page2.php
<?php
include 'connect.php';
include 'main.php';
$id = $_SESSION['id'];
$page = 2;
$sql_chk = " select * from html where id = '$id' and lastpage = '$page' ";
$rs_chk = mysql_query($sql_chk);
$num_chk = mysql_num_rows($rs_chk);
if ($num_chk == 0) {
mysql_query("INSERT INTO `html` (`id`, `lastpage`) VALUES ('$id', '$page') ");
} else {
$sql = "UPDATE html SET lastpage='$page' WHERE id='$id' and lastpage < $page";
mysql_query($sql) or die("MYSQL Query Failed : " . mysql_error());
}
$pageString = "page{$page}.php";
echo $pageString;
?>
答案 0 :(得分:2)
为什么不删除“page2”并将其简单地设为“2”,然后添加页面位。然后你可以做一个数字比较。
"UPDATE html SET lastpage=$page WHERE id='$id' and lastpage < $page ";
$ page只是数字。
然后,无论你在哪里比较'page10.php' == 'page2.php'
或其他什么,你都可以比较数字,如果你真的需要让字符串稍后再这样做:
$pageString = "page{$page}.php"