警告:在/ home /中分为零

时间:2012-07-28 17:02:15

标签: php mysql

我已经找到了这个问题,但是找不到它,我有一个脚本给我这个警告警告:在/ home / on 52.php中除零 - 你可以看到{{3}上的错误}

如果你看下面,$ 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
}

3 个答案:

答案 0 :(得分:2)

解决此问题的最佳方法是在进行除法之前检查$_GET['p']是否为0,如:

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

如果$pages为0,我想要$_GET['p']的任何内容(我在上面的示例中假设为1)

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

答案 2 :(得分:1)

您应该使用$_GET['p']而非$_GET[p](请注意')

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

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

您应该有一个后备值:

if($_GET['p']){
 $page = $_GET['p'];
} else{
 $page = 1;
}
$pages  = ceil($total / $page);