保存发生错误的数据,但数据仍被存储。你如何摆脱这些错误?$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个赞
首先,这些是通知和警告,而不是错误。如您所见,代码执行将在这些情况下继续,而脚本执行将在出现错误时终止。
这里至少有两个不同的问题:
您正在访问一个不存在的数组索引(第 66 行)
您正在对非数字值使用算术运算符(第 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 会隐式地将数字字符串转换为数字。您可能需要删除进一步的格式。可能intval
或floatval
将适用,具体取决于输入数据。最终,您需要从字符串中提取所需的数字并在执行加法之前将它们转换为数值(除非您尝试进行字符串连接,在这种情况下请参阅运算符.
)
- 1 回答
- 0 关注
- 150 浏览
添加回答
举报
0/150
提交
取消