-1

我正在浏览这个分页脚本,我无法理解 $_GET 是如何被使用的。这是脚本

<?php
$host = "localhost";
    $user = "root";
    $password = "";
    $database = "world";

    $db = mysql_connect($host, $user, $password);
    if($db)
    {
        $select_db = mysql_select_db($database);
        if(!$select_db)
        {
            echo 'Database Error:'. mysql_error();
        }
    }else
    {
        echo 'Connection Error:'. mysql_error();
    }
$rowsPerPage = 15;

// by default we show first page
$pageNum = 1;

// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
echo 'not set';
$pageNum = $_GET['page'];
}
else{echo 'is set';}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;

$query = "select * from city" .
" LIMIT $offset, $rowsPerPage";
//print $query;
$result=mysql_query($query);
?>

我将脚本命名为 p.php。

尽管该脚本没有具有?page=n

我尝试执行这个名为 tr.php 的脚本

if(isset($_GET['tr']))
{
echo "not set <br/>";
}
else{echo 'is set <br/>'; }

if(empty($_GET['tr'])){
echo 'so not there <br/>';
}

我得到了这个

is set
so not there 

为什么是 $_GET; 表现成这样?。

4

2 回答 2

2

这是因为您正在isset()以相反的方式检查您的

if(isset($_GET['page']))
{
    echo 'not set';

在这里,您正在使用 isset 并检查它是否为真,就是这样,因此您not set在实际设置时打印

if(isset($_GET['page'])) {
    echo 'is set';
    $pageNum = $_GET['page'];
} else {
    echo 'not set';
}

另一方面,我想告诉您该mysql_*功能实际上已被弃用并且不再被维护,因此您真的应该切换到mysqliPDO

于 2013-06-13T08:15:20.560 回答
1

字符串说错了。这显然是一个错误。如果你只是翻转你的弦,它会更有意义。

if(isset($_GET['tr']))   // This means it IS set...
{
    echo "IS set <br/>";    // ...thus, we change this....
}
else
{
    echo 'is NOT set <br/>';    // ... and this.
}

if(empty($GET['tr'])){
    echo 'so not there <br/>';
}
于 2013-06-13T08:15:11.737 回答