2012-07-28 38 views
-2
中划分为零

我已经搜索了该问题,但无法找到它,我有一个脚本给了我这个警告警告:在/ home /在线52.php中划分为零可以看到http://usedcarsforsaleingauteng.com/的错误警告:在/ home/

如果你看下面,$ pages = ceil($ total/$ _GET [p]); //页数是line 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 
} 
+0

的'GET'参数'p'没有设置。访问该页面时,您的网址是什么样的? – Kaii 2012-07-28 17:06:42

+0

'$ _GET ['p']'将不会被定义,除非在查询字符串中有一个名为'p'的参数...所以你需要有一个默认的页面长度,以防未设置。 – DCoder 2012-07-28 17:06:52

+0

不意味着显而易见...但是您是否检查过以确保“$ _GET [p]”已被赋值为非零值;)?什么是“p”?我认为你可能需要这样的东西:if(isset($ _ GET ['p'])){$ pages = = ceil($ total/$ _GET ['p']); ...' – paulsm4 2012-07-28 17:07:07

回答

1

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

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

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

你应该有一个回退值:

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

好吧,没有清除错误,对不起 – Sarah 2012-07-28 17:11:22

+0

那么可能$ _GET ['p']没有设置或它的值是0。尝试打印它。 – 2012-07-28 17:13:14

+0

好的,问题不在那里,直到我将文件夹/管理员重命名为其他文件,并且一些文件需要/文件夹文件,但我很快将其更改回 – Sarah 2012-07-28 17:23:08

2

这一轮最好的办法是检查是否$_GET['p']为0,你做除法之前,类似的东西;

$pages = ($_GET['p']==0) ? 1 : ceil($total/$_GET['p']); 
任何你想要 $pages是如果 $_GET['p']是0

或(我刚刚在上面的例子假设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]