2016-01-13 55 views
-6

零我得到這個錯誤:警告:司通過對485行496

Warning: Division by zero in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\my portable files\B2\seats.php on line 485

Warning: Division by zero in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\my portable files\B2\seats.php on line 496

PHP代碼:

for ($i = 0; $i < $num_rows; $i++) { 
    $row = mysql_fetch_array($result); 
    if ($i % $columns == 0) {     // line 485 

    } 
    if ($row['status']=='0') {  
    echo "<td><input type='checkbox' name='service[]' id='services' value='$row[rowid]' />&nbsp;&nbsp;".$row['rowid']."</td>"; 
    } else { 
    echo "<td>".$row['rowid'].".Sudah di pesan</td>"; 
    } 

    if (($i % $columns) == ($columns - 1) || ($i + 1) == $num_rows) { //line 496 
    echo "\n</TR>"; 
    } 
} 

請幫助我如何解決這個問題?

+3

錯誤是告訴你'$ columns'是0,所以,之前'如果檢查'$ columns'值($ I $%列== 0)'。 –

+0

從哪裏得到這個'$ columns'值? –

+0

從這裏得到 $ columns = $ kursi/6; $ query =「SELECT * FROM kursi WHERE nobus ='$ nobus'and tanggal ='$ tanggal'」; $ result = mysql_query($ query); $ num_rows = mysql_num_rows($ result); $ no = 1; echo「\ n 」; –

回答

0

根據@ Brian-Ray的說法,您的列爲0.模數運算符(%)執行除法操作(確定「餘數」值)。如果這遇到了除數0,則發生此錯誤。

一個常見的問題是檢查0,並短路IF語句中的邏輯。這看起來像:

if(($columns != 0) and ($i % $columns == 0)) 

由於AND(& &)邏輯運算符使用,當if語句中遇到的第一套括號(列不等於零)和失敗,也不會試圖執行if語句更進一步(因爲結果不可能是真實的,用AND運算符)

要修復496行上的錯誤,您需要執行相同的操作,可以在這裏找到更多關於if語句短路的信息:

https://en.wikipedia.org/wiki/Short-circuit_evaluation

+0

感謝您的幫助球員......當我添加這個腳本時,我得到這個問題[鏈接] https://3v4l.org/3Mshu [鏈接]如果我沒有添加,我沒有得到一個錯誤.. –

+0

你好,您是否嘗試過使用這些建議的更改來運行更新的腳本? – Danoweb

0

總結問題:

  • 你的錯誤說: 「被零除...在線485」。
  • 在線485是一個部門$i % columns

這意味着columns在這一點上爲零,您將除以它。

爲了解決這個問題,你需要決定:

  • 允許該程序允許達到485行與columns設置爲零?
    • 否:找出爲什麼會達到這種情況並阻止發生這種情況。
    • 是:當程序到達columns設置爲零時該做什麼?
      • 讓程序做到這一點,而不是目前正在做的事情。