我有一个代码,使用php mysqli将数据插入到数据库中获取Undefined index:在IF和Elseif行上执行。插入表单有效,但如何让错误消失? (这只是代码的一部分,希望你能帮忙)
IF($_GET['do']=='sparatid' ){
$datum=$_POST['datum'];
$info=$_POST['info'];
$color=$_POST['color'];
$uppdatera = "UPDATE narvaro SET info = '{$info}', color = '{$color}' WHERE datum = '{$datum}'";
$res = mysqli_query($con, $uppdatera) or die("SQL: Gick ej att uppdatera informationen $uppdatera <br>".mysql_error());
}
ElseIF($_GET['do']=='nytid'){
$datum=$_POST['datum'];
$info=$_POST['info'];
$color=$_POST['color'];
$sql = "insert into narvaro (fornamn, efternamn, datum, info, narvaro_id, pos, color) SELECT (fornamn), (efternamn), '$datum', (info), (narvaro_id), (pos), '$color' FROM narvaro WHERE datum ='2018-02-28'";
$results = mysqli_query($con, $sql);
}
答案 0 :(得分:0)
未定义的索引:
如果参数do
尚未与请求一起发送,那么如果您尝试使用undefined index
访问该参数,则会收到通知$_GET['do']
。要解决此问题,您必须检查索引do
是否已使用isset($_GET['do'])
设置。
意外的其他:
在你提供的代码中,elseif不应该抛出错误,尽管你应该把它全部写成小写。 If you are interested please have a look at the PHP documentation for else if
工作代码示例:
<?php
// Display all errors
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Check if 'do' has actually been set
if (isset($_GET['do'])) {
if ($_GET['do']=='sparatid' ) {
$datum=$_POST['datum'];
$info=$_POST['info'];
$color=$_POST['color'];
$uppdatera = "UPDATE narvaro SET info = '{$info}', color = '{$color}' WHERE datum = '{$datum}'";
$res = mysqli_query($con, $uppdatera) or die("SQL: Gick ej att uppdatera informationen $uppdatera <br>".mysql_error());
} else if ($_GET['do']=='nytid') {
$datum=$_POST['datum'];
$info=$_POST['info'];
$color=$_POST['color'];
$sql = "insert into narvaro (fornamn, efternamn, datum, info, narvaro_id, pos, color) SELECT (fornamn), (efternamn), '$datum', (info), (narvaro_id), (pos), '$color' FROM narvaro WHERE datum ='2018-02-28'";
$results = mysqli_query($con, $sql);
}
}