Вставка нескольких данных в разные таблицы, Mysq, Node.js - PullRequest
0 голосов
/ 07 ноября 2019

Итак, у меня есть три таблицы: пользователь, модули и промежуточная таблица user_module, чтобы выполнить внутреннее соединение между пользователем и модулем, мне нужен полный доступ к user_module

"SELECT user.uName, module.moduleName FROM user_module INNER JOIN user ON user.userID = user_module.userID_FK INNER JOIN module ON module.moduleID = user_module.moduleID_FK;",

У меня есть форма, которая позволяетмне, чтобы вставить информацию для пользователя, и я хотел бы выбрать, какой модуль пользователь берет. до сих пор я помещал информацию вручную с помощью phpmyadmin для таблицы user_module, остальная часть информации для пользователя поступает из кода node.js

const parsed = bodyParser.urlencoded({ extended: false });
app.post("/", parsed, (req, res, next) => {
  console.log(req.body);
  connection.query(
    "INSERT INTO user(name,surname,gender,dateOfBirth,email,userName,password) values('" +
      req.body.name1 +
      "','" +
      req.body.surname1 +
      "','" +
      req.body.gender +
      "','" +
      req.body.birtdate +
      "','" +
      req.body.email1 +
      "','" +
      req.body.username1 +
      "','" +
      req.body.password1 +
      "');",
    (err, row, field) => {
      if (!err) {
        res.redirect("/");
      } else {
        console.log(err);
      }
    }
  );
});

Но как я могу получить информацию из формы,и поместите 2 идентификатора в промежуточную таблицу?

<form action="/" method="post">
      <p>Name:</p>
      <input type="text" name="name1" /><br />
      <p>Surname:</p>
      <input type="text" name="surname1" /><br />
      <p>Gender:</p>
      <select name="gender">
        <option value="m">Male</option>
        <option value="f">female</option> </select
      ><br />
      <p>course:</p>
      <select name="module">
        <option value="1">Programming</option>
        <option value="2">webApp</option> </select
      ><br />
      <p>Date of Birth:</p>
      <input type="date" name="birtdate" placeholder="select Birth date" />
      <p>Email:</p>
      <input type="email" name="email1" />
      <p>Username:</p>
      <input type="text" name="username1" />
      <p>Password:</p>
      <input type="password" name="password1" /> <br />
      <input type="submit" value="submit" />
    </form>

1 Ответ

0 голосов
/ 07 ноября 2019

Здесь очень важен порядок действий, которые вы делаете:

1) Сначала вы должны сохранить пользователя, потому что вам нужен его идентификатор. После того, как вы успешно сохранили его, вам нужно получить его идентификатор. Иногда после успешного сохранения некоторые инфраструктуры предоставляют идентификатор сохраненного объекта, но вы всегда можете получить его вручную, с помощью нового запроса SQL, чтобы получить идентификатор пользователя с определенным адресом электронной почты.

SELECT id from users where email='email_of_the_user_you_just_saved"

2)После того, как у вас есть идентификатор пользователя и вы собрали идентификатор модуля из внешнего интерфейса, просто сделайте вставку в промежуточную таблицу user_module.

INSERT INTO user_module (user_id, module_id) VALUES (users_id_you_got_from_step_1, module_id_you_got_from_frontend);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...