2013-09-21 80 views
1

这是我迄今为止的代码。比较表中的内容

<?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。现在让我们说你转到page2,我希望它将lastpage列更新为page2.php。不过,如果我回到我page1.php中不希望它再次因为我过去的那页等更新......

的两个主要问题:

  1. 比方说我转到page1,并在我的用户ID下将lastpage设置为page1。然后我转到page2,其中$ page =“page2.php”。它不会用这个脚本覆盖数据。

  2. 我需要这个脚本才能够检查页面是否等于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; 
?> 

回答

2

为什么不删除“第2页”,并使其简称为“2”,后添加页面位。然后你可以做一个数字比较。

"UPDATE html SET lastpage=$page WHERE id='$id' and lastpage < $page "; 

其中$ page只是数字。

那么无论你会比较'page10.php' == 'page2.php'或什么的,你可以比较的数字,如果你真的需要有串只是这样做后:

$pageString = "page{$page}.php" 
+0

为什么我没觉得d:即是一个非常聪明的主意!谢谢很多!你有一个聪明的方式来看东西:) 现在这意味着如果表格html内的数据小于$ page的值,它将不会更新。虽然如果它小于$ page(true),它会更新。正确?这实际上可以节省很多时间!谢谢! –

+0

没问题,如果是正确的 - 请接受答案:) –

+0

由于某些原因,当我转到page2.php时,它不会更新数据库内的数据。它仍然和以前一样。我会在我的问题中更新page2.php的代码。但它的奇怪,因为它仍然回声page2.php时,我echo $ pageString。但它不会在数据库中更新。 –