Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 试图从下拉菜单中删除会话时发生未定义索引错误_Php_Mysqli - Fatal编程技术网

Php 试图从下拉菜单中删除会话时发生未定义索引错误

Php 试图从下拉菜单中删除会话时发生未定义索引错误,php,mysqli,Php,Mysqli,我想从下拉菜单中删除会话。用户将从下拉菜单中选择一个会话,然后单击删除按钮,这将删除数据库中的会话。问题是,如果我单击“删除”按钮,它会出现一个未定义的索引错误,说明第200行中的sessiondrop未定义。我的问题是: 1:如何消除下面代码中未定义的索引错误 2:如何写入if语句以及在何处写入if语句,以便如果删除成功,它将回显“会话…已删除”否则如果尚未删除,则显示回显“发生错误,会话…未删除” 代码如下: $sessionnum = 0; if (isset($_POST['modu

我想从下拉菜单中删除会话。用户将从下拉菜单中选择一个会话,然后单击删除按钮,这将删除数据库中的会话。问题是,如果我单击“删除”按钮,它会出现一个未定义的索引错误,说明第200行中的
sessiondrop
未定义。我的问题是:

1:如何消除下面代码中未定义的索引错误 2:如何写入if语句以及在何处写入if语句,以便如果删除成功,它将回显“会话…已删除”否则如果尚未删除,则显示回显“发生错误,会话…未删除”

代码如下:

$sessionnum = 0;

 if (isset($_POST['modulesubmit'])) {

     if($_REQUEST['modulesDrop']==''){

         echo "Please Select a Module from the Drop Down Menu Above";

     }
     else{  

 var_dump($_POST['modulesDrop']);

        $sessionquery = "
             SELECT SessionId, SessionDate, SessionTime, ModuleId
             FROM Session
             WHERE
             (ModuleId = ?)
             ORDER BY SessionDate, SessionTime 
            ";

$sessionqrystmt=$mysqli->prepare($sessionquery);
// You only need to call bind_param once
$sessionqrystmt->bind_param("s",$_POST['modulesDrop']);
// get result and assign variables (prefix with db)

$sessionqrystmt->execute(); 

$sessionqrystmt->bind_result($dbSessionId,$dbSessionDate,$dbSessionTime, $dbModuleId);

 $sessionqrystmt->store_result();

$sessionnum = $sessionqrystmt->num_rows();   

    $dataArraySession = array();

 while ( $sessionqrystmt->fetch() ) { 

 $dataArraySession[$dbSessionId]['SessionDate'] = $dbSessionDate; 
 $dataArraySession[$dbSessionId]['SessionTime'] = $dbSessionTime;

}

   $sessionHTML = "";
   $sessionHTML .= '<select name="session" id="sessionsDrop">'.PHP_EOL;
   $sessionHTML .= '<option value="">Please Select</option>'.PHP_EOL;     

foreach ($dataArraySession as $sessionId => $sessionData) {

   $sessionHTML .= "<option value='$sessionId'>" . $sessionId . " - " . $sessionData['SessionDate']. " - " . $sessionData['SessionTime'] ."</option>".PHP_EOL;        

        }

   $sessionHTML .= '</select>';
}
 if ($sessionnum > 0) {

 ?>

     <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
     <p>Sessions: <?php echo $sessionHTML; ?><input id="sessionSubmit" type="submit" value="Delete" name="sessionsubmit" /></p>      
    </form>       

<?php

}
else {
 echo "<p>Sorry, You have No Sessions under this Module</p>";
}

}

 if (isset($_POST['sessionsubmit'])) {

     if($_REQUEST['sessionsDrop']==''){ //line 200 where undefined index occurs

         echo "Please Select a Session from the Drop Down Menu Above to Delete a Session";

     }
     else{  

 var_dump($_POST['sessionsDrop']);

 $sessiondel = $_POST['sessionsDrop'];

         $sessiondeletesql = " DELETE sess 
        FROM Session AS sess 
        WHERE sess.SessionId = ?"; 


                if (!$delete = $mysqli->prepare($sessiondeletesql)) {
      // Handle errors with prepare operation here
    }

    //Dont pass data directly to bind_param store it in a variable
$delete->bind_param("s", $sessiondel);

 $delete->execute();

        if ($delete->errno) {
          // Handle query error here
        }

        $delete->close();

        echo "Session $sessiondel was Deleted";
}
}
    ?>
$sessionnum=0;
如果(isset($_POST['modulesubmit'])){
如果($_请求['modulesDrop']=''){
echo“请从上面的下拉菜单中选择一个模块”;
}
否则{
var_dump($_POST['modulesDrop']);
$sessionquery=”
选择SessionId、SessionDate、SessionTime、ModuleId
会议结束后
哪里
(ModuleId=?)
按SessionDate、SessionTime排序
";
$sessionqrystmt=$mysqli->prepare($sessionquery);
//您只需要调用bind_param一次
$sessionqrystmt->bind_参数($s),$_POST['modulesDrop']);
//获取结果并分配变量(前缀为db)
$sessionqrystmt->execute();
$sessionqrystmt->bind_result($dbSessionId,$dbSessionDate,$dbSessionTime,$dbModuleId);
$sessionqrystmt->store_result();
$sessionnum=$sessionqrystmt->num_rows();
$dataArraySession=array();
而($sessionqrystmt->fetch()){
$dataArraySession[$dbSessionId]['SessionDate']=$dbSessionDate;
$dataArraySession[$dbSessionId]['SessionTime']=$dbSessionTime;
}
$sessionHTML=“”;
$sessionHTML.=''.PHP\u EOL;
$sessionHTML.='请选择'.PHP\u EOL;
foreach($dataArraySession作为$sessionId=>$sessionData){
$sessionHTML.=''.$sessionId.-“$sessionData['SessionDate'.]”-“$sessionData['SessionTime'.]”.PHP_EOL;
}
$sessionHTML.='';
}
如果($sessionnum>0){
?>

您的
未定义索引
错误是因为您正在使用
$\u请求['sessionsDrop']=''
,但您的表单代码是-

$sessionHTML .= '<select name="session" id="sessionsDrop">'.PHP_EOL;
$sessionHTML.=''.PHP\u EOL;
因此,您应该使用
$\u REQUEST['session']=''
,而不是
$\u REQUEST['sessionsDrop']=''
,因为超全局(
$\u POST
$\u GET
$\u REQUEST
)引用的是
名称,而不是
id