2012-07-28 97 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]