尝试更新mysql数据库中的字段时php抛出错误

尝试更新mysql数据库中的字段时php抛出错误,php,mysql,forms,pdo,edit,Php,Mysql,Forms,Pdo,Edit,我正在尝试编辑一个名为“分钟”的数据库表中的字段,有许多分钟集,但代码如下所示。。。会话开始设置在下面的查询中使用的当前用户currentUser=Bnumber。。。在“viewstudentminutes.php”页面上单击编辑按钮时,会抛出以下错误“注意:未定义的索引:viewstudentminutes.php中的分钟ID,位于第179行 致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;查看与您的

我正在尝试编辑一个名为“分钟”的数据库表中的字段,有许多分钟集,但代码如下所示。。。会话开始设置在下面的查询中使用的当前用户currentUser=Bnumber。。。在“viewstudentminutes.php”页面上单击编辑按钮时,会抛出以下错误“注意:未定义的索引:viewstudentminutes.php中的分钟ID,位于第179行

致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,在viewstudentminutes.php:179堆栈跟踪:0 viewstudentminutes.php179:PDO->准备从viewstudentminutes.php第179行中抛出的“…”1{main}”中选择*

下面是minutes.php页面上的所有代码,下面是“viewstudentminutes.php”中的代码

<?php
include ("dbConnect.php");
include ("studenthead.php");

session_start();
if (!(isset($_SESSION["sess_username"]))) header ("Location: index.php");
$currentUser=$_SESSION["sess_username"];   

if (isset($_POST['addMinute'])) {
$newB_number = $currentUser;
$newDate = $_POST['Date'];
$newTime = $_POST['Time'];
$newDiscussion = $_POST['Discussion'];
$newActions = $_POST['Actions'];
$newDateofnextmeeting = $_POST['Dateofnextmeeting'];
$newStatus = "Submitted";
$newE_number =  $_POST['E_number'];
$newSupervisor_comments = $_POST['Supervisor_comments'];



$dbQuery  = $db->prepare("insert into minute values (null, :newB_number, :newDate, :newTime, :newDiscussion, :newActions, :newDateofnextmeeting,  :newStatus, :newE_number, :newSupervisor_comments )");
$dbParams = array('newB_number'=>$newB_number, 'newDate'=>$newDate, 'newTime'=>$newTime, 'newDiscussion'=>$newDiscussion, 'newActions'=>$newActions, 'newDateofnextmeeting'=>$newDateofnextmeeting, 'newStatus'=>$newStatus, 'newE_number'=>$newE_number, 'newSupervisor_comments'=>$newSupervisor_comments);
$dbQuery->execute($dbParams);

$lastInserted = $db->lastInsertId();
}

if (isset($_POST['deleteMinuteID'])) {
$ID = $_POST['deleteMinuteID'];

$dbQuery  = $db->prepare("delete from minute where ID=:ID");
$dbParams = array('ID'=>$ID);
$dbQuery->execute($dbParams);
}


if (isset($_POST['editCommitID'])) {
$ID           = $_POST['editCommitID'];
$editB_number = $_POST['editB_number'];
$editDate  = $_POST['editDate'];
$editTime  = $_POST['editTime'];
$editDiscussion  = $_POST['editDiscussion'];
$editActions = $_POST['editActions'];
$editDateofnextmeeting = $_POST['editDateofnextmeeting'];
$editStatus = $_POST['editStatus'];
$editE_number = $_POST['editE_number'];
$editSupervisor_comments = $_POST['editSupervisor_comments'];


$dbQuery  = $db->prepare("update minute set B_number=:B_number, Date=:Date, Time=:Time, Discussion=:Discussion, Actions=:Actions, Dateofnextmeeting=:Dateofnextmeeting, Status=:Status, E_number=:E_number, Supervisor_comments=:Supervisor_comments where ID=:ID");
$dbParams = array('ID'=>$ID, 'B_number'=>$editB_number, 'Date'=>$editDate, 'Time'=>$editTime, 'Discussion'=>$editDiscussion, 'Actions'=>$editActions, 'Dateofnextmeeting'=>$editDateofnextmeeting, 'Status'=>$editStatus, 'E_number'=>$editE_number, 'Supervisor_comments'=>$editSupervisor_comments);
$dbQuery->execute($dbParams);

header("location: minutes.php");
exit();
}


?>

<html>
<head>
<title>Minutes</title>

<h2>Minutes</h2>
<table class="table table-striped">
<thead>
    <th>B Number</th><th>Date</th><th>Time</th><th>Discussion</th>    <th>Actions</th><th>Date of next meeting</th><th>Status</th><th>Supervisor</th><th>Supervisor comments</th>
</thead>
<tbody>

<?php
$dbQuery = $db->prepare("select * from minute where '$currentUser'=B_number ");
$dbQuery->execute();

$numMinutes = $dbQuery->rowCount();

echo "<p>There are $numMinutes sets of minutes in the system</p>";

$oddRow=true;
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)) {
    $ID       = $dbRow['ID'];
    $B_number = $dbRow['B_number'];
    $Date  = $dbRow['Date'];
    $Time  = $dbRow['Time'];
    $Discussion = $dbRow['Discussion'];
    $Actions = $dbRow['Actions'];
    $Dateofnextmeeting = $dbRow['Dateofnextmeeting'];
    $Status = $dbRow['Status'];
    $E_number = $dbRow['E_number'];
    $Supervisor_comments = $dbRow['Supervisor_comments'];


    if ($oddRow) $rowClass="odd"; else $rowClass="even";
    $oddRow=!$oddRow;

    if (isset($_POST['editMinuteID']) && $_POST['editMinuteID']==$ID) {
        echo "<tr class='$rowClass '>
              <form style='display:inline' method='post' action='minutes.php'>
                <input type='hidden' name='editCommitID' value='$ID'>
                <td><input type='varchar' name='editB_number' value='$B_number'></td>
                <td><input type='date' name='editDate' value='$Date'></td>
                <td><input type='time' name='editTime' value='$Time'></td>
                <td><input type='text' name='editDiscussion' value='$Discussion'></td>
                <td><input type='text' name='editActions' value='$Actions'></td>
                <td><input type='date' name='editDateofnextmeeting' value='$Dateofnextmeeting'></td>
                <td><input type='enum' name='editStatus' value='$Status'></td>
                <td><input type='varchar' name='editE_number' value='$E_number'></td>
                <td><input type='text' name='editSupervisor_comments' value='$Supervisor_comments'></td>
                <td colspan='2'><input type='image' src='edit.png'>
             </form>
             </tr>";      
    } else {

        echo "<tr class='$rowClass'><td>$B_number</td><td>$Date</td><td>$Time</td><td>$Discussion</td><td>$Actions</td><td>$Dateofnextmeeting</td><td>$Status</td><td>$E_number</td><td>$Supervisor_comments</td>
                  <td class='operation'>
                     <form class='display:inline' method='post' action='viewstudentminutes.php'>
                     <input type='hidden' name='editMinute_ID' value='$ID'>
                     <input type='image' src='edit.png' style='padding-top:7px'>
                     </form></td>
                  <td class='operation'>
                     <form class='display:inline' method='post' action='minutes.php'   
                           onsubmit='return confirm(\"Are you sure?\")'>
                     <input type='hidden' name='deleteMinuteID' value='$ID'>
                     <input type='image' src='delete.png' style='padding-top:7px'>
                     </form></td>
                     <td class='operation'>
                     <form class='display:inline' method='post' action='viewstudentminutes.php' onsubmit='viewstudentminutes.php'>
                    <input type='image' src='view.png' style='padding-top:7px'>
                    <input type='hidden' name='Minute_ID' value='" . $ID . "'>
</form></td>
 </tr>";
}         
}


?>
以及“viewstudentminutes”中的相应代码

<?php
include ("dbConnect.php");
include ("studenthead.php");

session_start();
if (!(isset($_SESSION["sess_username"]))) header ("Location: index.php");

$currentUser=$_SESSION["sess_username"];   

if (isset($_POST['addMinute'])) {
$newB_number = $currentUser;
$newDate = $_POST['Date'];
$newTime = $_POST['Time'];
$newDiscussion = $_POST['Discussion'];
$newActions = $_POST['Actions'];
$newDateofnextmeeting = $_POST['Dateofnextmeeting'];
$newStatus = "Submitted";
$newE_number =  $_POST['E_number'];
$newSupervisor_comments = "  ";




$dbQuery  = $db->prepare("insert into minute values (null, :newB_number, :newDate, :newTime, :newDiscussion, :newActions, :newDateofnextmeeting, :newStatus, :newE_number, :newSupervisor_comments )");
$dbParams = array('$newB_number'=>$newB_number, 'newDate'=>$newDate, 'newTime'=>$newTime, 'newDiscussion'=>$newDiscussion, 'newActions'=>$newActions, 'newDateofnextmeeting'=>$newDateofnextmeeting, 'newStatus'=>$newStatus, 'newE_number'=>$newE_number, 'newSupervisor_comments'=>$newSupervisor_comments);
$dbQuery->execute($dbParams);

$lastInserted = $db->lastInsertId();
}



if (isset($_POST['editCommitID'])) {
$ID           = $_POST['editCommitID'];
$editB_number = $_POST['editB_number'];
$editDate  = $_POST['editDate'];
$editTime  = $_POST['editTime'];
$editDiscussion  = $_POST['editDiscussion'];
$editActions = $_POST['editActions'];
$editDateofnextmeeting = $_POST['editDateofnextmeeting'];
$editStatus = $_POST['editStatus'];
$editE_number = $_POST['editE_number'];
$editSupervisor_comments = $_POST['editSupervisor_comments'];


$dbQuery  = $db->prepare("update minute set B_number=:B_number, Date=:Date, Time=:Time, Discussion=:Discussion, Actions=:Actions, Dateofnextmeeting=:Dateofnextmeeting, Status=:Status, E_number=:E_number, Supervisor_comments=:Supervisor_comments where ID=:ID");
$dbParams = array('ID'=>$ID, 'B_number'=>$editB_number, 'Date'=>$editDate, 'Time'=>$editTime, 'Discussion'=>$editDiscussion, 'Actions'=>$editActions, 'Dateofnextmeeting'=>$editDateofnextmeeting, 'Status'=>$editStatus, 'E_number'=>$editE_number, 'Supervisor_comments'=>$editSupervisor_comments);
$dbQuery->execute($dbParams);

header("location: viewstudentminutes.php");
exit();
}



?>

<html>
<head>
<title>Minutes</title>

<h2>Minutes</h2>
<table class="table table-condensed">
<?php 


$dbQuery= $db->prepare("SELECT * FROM `Minute` WHERE `B_number` = '" .     $currentUser . "' AND `id` = " . $_POST['Minute_ID']);
$dbQuery->execute();


$oddRow=true;
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)) {
    $ID       = $dbRow['ID'];
    $B_number = $dbRow['B_number'];
    $Date  = $dbRow['Date'];
    $Time  = $dbRow['Time'];
    $Discussion = $dbRow['Discussion'];
    $Actions = $dbRow['Actions'];
    $Dateofnextmeeting = $dbRow['Dateofnextmeeting'];
    $Status = $dbRow['Status'];
    $E_number = $dbRow['E_number'];
    $Supervisor_comments = $dbRow['Supervisor_comments'];


    if ($oddRow) $rowClass="odd"; else $rowClass="even";
    $oddRow=!$oddRow;

    if (isset($_POST['editMinuteID']) && $_POST['editMinuteID']==$id) {
        echo "<tr class='$rowClass'>
              <form style='display:inline' method='post' action='viewstudentminutes.php'>
                <input type='hidden' name='editCommitID' value='$ID'>
                 <tr><td colspan='2'><input type='image' src='edit.png'></tr>
                 <tr><th>BNumber</th><td><input type='varchar' name='editB_number' value='$B_number'></td></tr>
                <tr><th>Date</th><td><input type='date' name='editDate' value='$Date'></td></tr>
                <tr><th>Time</th><td><input type='time' name='editTime' value='$Time'></td></tr>
                <tr><th>Discussion</th><td><input type='text' name='editDiscussion' value='$Discussion'></td></tr>
                <tr><th>Actions</th><td><input type='text' name='editActions' value='$Actions'></td></tr>
                <tr><th>Date of Next Meeting</th><td><input type='date' name='editDateofnextmeeting' value='$Dateofnextmeeting'></td></tr>
                <tr><th>Status</th><td><input type='enum' name='editStatus' value='$Status'></td></tr>
                <tr><th>E Number</th><td><input type='varchar' name='editE_number' value='$E_number'></td></tr>
                <tr><th>Supervisor Comments</th><td><input type='text' name='editSupervisor_comments' value='$Supervisor_comments'></td></tr>

             </form>
             </tr>";      
    } else {
        echo "<tr class='$rowClass'>
                <td class='operation'>
                     <form class='display:inline' method='post' action='viewstudentminutes.php'>
                     <input type='hidden' name='editMinute_ID' value='$ID'>
                     <input type='image' src='edit.png' style='padding-top:7px'>
                     </form></td>
                <tr><th>BNumber</th><td>$B_number</td></tr>
                <tr><th>Date</th><td>$Date</td></tr>
                <tr><th>Time</th><td>$Time</td></tr>
                <tr><th>Discussion</th><td>$Discussion</td></tr>
                <tr><th>Actions</th><td>$Actions</td></tr>
                <tr><th>Date of Next Meeting</th><td>$Dateofnextmeeting</td></tr>
                <tr><th>Status</th><td>$Status</td></tr>
                <tr><th>E Number</th><td>$E_number</td></tr>
                <tr><th>Supervisor Comments</th>   <td>$Supervisor_comments</td></tr>
              </tr>";
    }         
}

?>
</table>

您应按如下方式编辑查询行:

$dbQuery= $db->prepare("SELECT * FROM `Minute` WHERE `B_number` = '" .     $currentUser . "' AND `id` = " . $_POST['editMinute_ID']);

$dbQuery=$db->prepareSELECT*从分钟开始,其中B_number='$“当前用户。”id=$_POST['Minute_ID'];但是,我需要这条语句,因为它会打印出所选的分钟数……viewstudentminutes.php中的表单没有名称为minute\u ID的字段,因此当您尝试在表单提交后使用它时,$\u POST['minute\u ID']不存在。您从PHP收到一条关于未定义索引的消息,从MySQl收到一条关于语法错误的投诉,因为您的SELECT查询由于缺少变量而格式不正确。好的,您知道如何修复这个问题吗?id是自动递增的,用户从未输入过,你的意思是我应该在表单中放一行这样的内容。。。分钟您可以打印$\u请求数组以找到正确的字段名我使用的是正确的字段名吗?你能举一个例子来说明你的意思吗?我的意思是,在打印完$\u请求数组后,你可以确定你是否使用了正确的字段名$_请求将显示提交的所有字段。打印完$\u请求后,您能打印您得到的吗?我将$\u POST['editMinute\u ID']更改为$\u POST['ID']以及相应的变量,如下所示。我试着打印$\u帖子;并且它打印了阵列。这么说一个数组里面什么都没有?!我很困惑,你是否可以发布一个例子,说明我应该做什么,只显示点击的分钟数,并允许用户编辑它们?请