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 が追加されるためです。lastpageここで、page2に移動したとします。列を page2.phpに更新したいとします。しかし、その後、page1.php に戻ると、そのページを過ぎてしまったので、再度更新したくありません...

2 つの主な問題:

  1. lastpagepage1 に移動すると、ユーザー ID の下で page1に設定されます。次に、$page = "page2.php" の page2 に移動します。このスクリプトを使用してデータを上書きすることはありません。

  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;
?>
4

1 に答える 1

2

「page2」を削除して単純に「2」にし、その後にページビットを追加してみませんか。次に、数値比較を行うことができます。

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

$page は単なる数字です。

次に、比較する場所'page10.php' == 'page2.php'などで数値を比較できます。文字列が本当に必要な場合は、後でこれを行うだけです。

$pageString = "page{$page}.php"
于 2013-09-21T05:14:56.517 に答える