$ _GET如何在此脚本中运行

时间:2013-06-13 08:10:40

标签: php

我正在浏览这个分页脚本,我无法理解如何使用$ _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;这样做?。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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/>';
}