当学生添加新科目时,我试图将userID从Student表转移到评估表,以使他们的科目对于他们所拥有的userID仍然是唯一的。
但是,我似乎无法提出正确的问题来获得自己正在寻找的答案,因此我假设我必须在他们登录时为其唯一的会话,即用户ID。
然后我继续添加一个隐藏的输入,以便在提交表单时,MySQL正在获取该用户ID,因此可以添加该用户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;
答案 0 :(得分:1)
所以我的问题放在学生表中,我需要添加
$_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;