当学生添加新科目时,我正试图将userID从Student表转移到评估表,以便他们的科目在他们拥有的userID中保持唯一。
然而,我似乎无法提出正确的问题来获得我想要的答案,所以我假设当他们登录时,我必须为他们提供一个唯一的会话,即他们的用户ID。
然后我添加了一个隐藏的输入,所以当表单提交时,MySQL会得到那个用户ID,这样它就可以添加进去,但它似乎不起作用*。。。
*一切正常,但评估表中的userID字段仍然为0
当然有更有效的方法来解决这个问题。。
以下是我所做的。。
登录后,我创建一个会话-
$_SESSION['userID'] = $_POST['userID'];
我的PDO+MySQL-
$assessName = $_POST["assessName"];
$assessSubject = $_POST['assessSubject'];
$duedate = $_POST['duedate'];
$userID = $_POST['userID'];
$sql = "INSERT INTO assessment (assessName, assessSubject, duedate, userID) VALUES (:assessName, :assessSubject, :duedate, :userID)";
$statement = $conn->prepare($sql);
$statement->bindValue(':assessName', $assessName);
$statement->bindValue(':assessSubject', $assessSubject);
$statement->bindValue(':duedate', $duedate);
$statement->bindValue(':userID', $userID);
$result = $statement->execute();
$statement->closeCursor();
header("location: ../view/success.php");
return $result;
表单-
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
<div class="form-group">
<label>Assessment Name</label>
<input type="text" class="form-control" id="assessName" name="assessName" placeholder="Enter Name" required>
</div>
<div class="form-group">
<label>Subject</label>
<input type="text" class="form-control" id="assessSubject" name="assessSubject" placeholder="Enter Subject" required>
<span class="error"><?php echo $Variable_error;?></span>
</div>
<div class="form-group">
<div class="dateBox">
<label>Date</label>
<input type="text" class="form-control" id="datepicker" name="duedate" placeholder="Choose Due Date" autocomplete="off" required>
</div>
<input type="hidden" name="userID" value="<?php $_SESSION['userID'] ?> "/>
</div>
<input type="submit" name="submit" value="Submit" class="btn btn-primary"></input>
</form>
谢谢!
编辑-
学生桌
$sql = 'SELECT * FROM student WHERE username = :username AND password =
:password';
$statement = $conn->prepare($sql);
$statement->bindValue(':username', $username);
$statement->bindValue(':password', $password);
$statement->execute();
$result = $statement->fetchAll();
$statement->closeCursor();
$count = $statement->rowCount();
return $count;
所以我的问题出现在我的学生表中,我需要添加
$_SESSION['uid'] = $result[0]['studentid'];
在使用$count变量之前。。。
$sql = 'SELECT * FROM student WHERE username = :username AND password = :password';
$statement = $conn->prepare($sql);
$statement->bindValue(':username', $username);
$statement->bindValue(':password', $password);
$statement->execute();
$result = $statement->fetchAll();
$_SESSION['uid'] = $result[0]['studentid'];
$statement->closeCursor();
$count = $statement->rowCount();
return $count;