亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

警告在 PHP 中遇到非數字值

警告在 PHP 中遇到非數字值

PHP
守著星空守著你 2022-12-11 10:18:50
保存發生錯誤的數據,但數據仍被存儲。你如何擺脫這些錯誤?$query1 = "SELECT * FROM t_ref_pokja WHERE status='1' ORDER BY id"; $hasil1 = mysqli_query($koneksi,$query1);if ($num_rows1 = mysqli_num_rows($hasil1)) {while($list1 = mysqli_fetch_array($hasil1)){$no = $list1['id'];$a= "wisuda_$no";$b= "RT_$no";$c= "OPR_$no";$d= "PI_$no";$e= "Strat_$no";$f= "pagu_$no";$g= "save_$no";$nama=$_POST[$f];$wisuda1 = $_POST[$a];$wisuda = str_replace(",", "",$wisuda1);$rt1 = $_POST[$b]; $rt = str_replace(",", "",$rt1);$opr1 = $_POST[$c]; $opr = str_replace(",", "",$opr1);$pi1 = $_POST[$d];$pi = str_replace(",", "",$pi1);$strat1 = $_POST[$e];$strat = str_replace(",", "",$strat1);$save = $_POST[$g];                    //line 66$total =($wisuda+$rt+$opr+$pi+$strat); //line 67$tahun = date("Y");if($save == "save"){在此處輸入圖像描述請幫我
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

首先,這些是通知和警告,而不是錯誤。如您所見,代碼執行將在這些情況下繼續,而腳本執行將在出現錯誤時終止。

這里至少有兩個不同的問題:

  1. 您正在訪問一個不存在的數組索引(第 66 行)

  2. 您正在對非數字值使用算術運算符(第 67 行)

對于 1,您應該在訪問數組之前檢查該鍵是否存在于$_POST數組中。我假設因為它在請求中不存在,所以“保存”參數是可選的。由于它不存在,null將被分配給$save,因此大概這是以后邏輯所需的值。array_key_exists您可以簡單地使用或添加條件isset來阻止通知。如果您使用的是 php 7 或更高版本,則可以使用“null coalesce”operator( ??)。

$save = array_key_exists($g, $_POST)?$_POST[$g]:null;

或者

$save = $_POST[$g]??null;

對于 2,我需要更多關于其價值和意圖的信息。從加法運算符和逗號替換來看,您似乎正在接受以某種方式格式化的數值。在這種情況下,PHP 會隱式地將數字字符串轉換為數字。您可能需要刪除進一步的格式。可能intvalfloatval將適用,具體取決于輸入數據。最終,您需要從字符串中提取所需的數字并在執行加法之前將它們轉換為數值(除非您嘗試進行字符串連接,在這種情況下請參閱運算符.


查看完整回答
反對 回復 2022-12-11
  • 1 回答
  • 0 關注
  • 191 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號