【发布时间】:2017-04-28 02:34:31
【问题描述】:
我有一个与三个表具有多对多关系的数据库:
+-----------+ +----------+ +----------+
|doorUser | |doorAccess| | doors |
+-----------+ +----------+ +----------+
| userID | | userID | | doorNum |
| lname | | doorNum | | doorName |
| fname | +----------+ +----------+
| username |
| accessNum |
+-----------+
doorAccess 表是连接doorUser 和doors 表的中间表。我想做的事情是插入到 doorUser 表和 doorAccess 表中,这样每个用户都可以访问任意数量的门。我已经设法让我的 PHP 可以插入到 doorUser 表中,但 doorAccess 表被证明要困难得多。
下面的代码是来自提交和帖子的sn-p。
if (isset($_POST["submit"])) {
if( (isset($_POST["fname"]) && $_POST["fname"] !== "") && (isset($_POST["lname"]) && $_POST["lname"] !== "") &&(isset($_POST["username"]) && $_POST["username"] !== "") &&(isset($_POST["accessNum"]) && $_POST["accessNum"] !== "") ) {
$query = "INSERT INTO doorUser ";
$query .= "(fname,lname,username,accessNum) ";
$query .= "values('".$_POST["fname"]."', '".$_POST["lname"]."', '".$_POST["username"]."', '".$_POST["accessNum"]."')";
$query3 = "SELECT doorNum, doorName ";
$query3 .= "FROM doors ";
$result3 = $mysqli->query($query3);
while ($row3 = $result3->fetch_assoc()) {
$doorNum = $row3["doorNum"];
$doorName = $row3["doorName"];
if( (isset($row3["doorName"]) && $row3["doorName"] !== "")){
$query3 = "INSERT INTO doorAccess ";
$query3 .= "(userID, doorNum) ";
$query3 .= "values('".$_POST[LAST_INSERT_ID()]."', '".$_POST["doorNum"]."')"
}
}
下面的代码是表单中的sn-p:
echo "<p><form action = 'addUser.php?id={$ID}' method='post'>";
echo "<p><input type = 'text' name = 'fname' placeholder = 'First Name' /></p>";
echo "<p><input type = 'text' name = 'lname' placeholder = 'Last Name' /></p>";
echo "<p><input type = 'text' name = 'username' placeholder = 'username' /></p>";
echo "<p><input type = 'text' name = 'accessNum' placeholder = 'password' /></p>";
$query2 = "SELECT doorNum ";
$query2 .= "FROM doors ";
$result2 = $mysqli->query($query2);
if ($result2 && $result2->num_rows > 0) {
while ($row2 = $result2->fetch_assoc()) {
$doorNum = $row2["doorNum"];
echo "<p><input type = 'checkbox' name = 'doorName' value = '".$row2["doorNum"]."' /> Door $doorNum</p>";
}
}
echo "<p><input type = 'submit' name = 'submit' value = 'Add Person' />";
echo "</form>";
门表可以在另一部分添加或删除,因此我需要能够为门动态生成许多复选框,但我还需要一种方法来链接哪些用户可以访问哪些门。复选框按预期生成,但我在将用户 ID 和门插入中间表时遇到问题。
我检查了一下,我可以使用此代码插入到 doorUser 表中,但问题出在 doorAccess 插入的某处。
任何帮助将不胜感激!
【问题讨论】:
-
$_POST[LAST_INSERT_ID()]我怀疑你可以使用它。在您的查询中使用mysqli_error($mysqli),看看会发生什么。
标签: php mysql database checkbox