-2

我已经搜索了这个问题,但找不到它,我有一个脚本给我这个警告警告:第 52.php 行的 /home/ 中除以零 - 你可以在http://usedcarsforsaleingauteng.com上看到错误/

如果你看下面,$pages = ceil($total / $_GET[p]); // 页数为第 52.php 行

你们能帮忙吗?谢谢

// get total number of entries for pagenation
$result = mysql_query("SELECT COUNT(*) FROM $dblist $where", $link);
$total  = mysql_fetch_array($result); $total = $total[0]; // total number of listings
$pages  = ceil($total / $_GET[p]); // number of pages
}
4

3 回答 3

2

$_GET['p']最好的方法是在进行除法之前检查是否为 0,例如;

$pages = ($_GET['p']==0) ? 1 : ceil($total / $_GET['p']);

或者任何你想$pages成为的东西,如果$_GET['p']是 0(在上面的例子中我只是假设 1)

于 2012-07-28T17:07:10.157 回答
1

$_GET[p]可能是未定义的。您应该检查它是否存在:

if(isset($_GET['p'])) {
    $p = (int) $_GET['p'];
    // Your code
    if($p != 0)
        $pages  = ceil($total / $p);
    else {
        // Do errorhandling e.g. setting $page = 0
    }
}

另请注意,您应该始终编写$_GET['p']而不是$_GET[p].

于 2012-07-28T17:07:49.447 回答
1

你应该使用$_GET['p']not $_GET[p] (注意 ' )

我刚刚查看了您的网站并看到了错误。$_GET['p']如果未随 url 提供变量,则不会将变量设置为后备值。

当您访问http://usedcarsforsaleingauteng.com/时,您会看到错误,但不是:http ://usedcarsforsaleingauteng.com/?p=1

您应该有一个后备值:

if($_GET['p']){
 $page = $_GET['p'];
} else{
 $page = 1;
}
$pages  = ceil($total / $page);
于 2012-07-28T17:08:38.320 回答