ВСТАВЬТЕ в MYSQL и затем перед закрытием соединения выберите идентификатор вставки и затем добавьте этот идентификатор к 3 другим таблицам

Я довольно новичок в мире SQL, поэтому прошу прощения за мое незнание этого.

У меня есть форма на странице администратора, которая добавляет игрока в базу данных команды. Когда форма отправлена, мне нужно:

  • Игрок вставляется в таблицу игроков (player_id является первичным ключом и используется на следующем шаге).

  • Оператор select выполняется для получения player_id.

  • Затем вставляет это в 2 другие таблицы:
    • team_players и карты.

Ниже представлено лучшее из того, что я пробовал:

if(isset($_POST['submit'])){

$first_name = mysqli_real_escape_string($con2, $_POST['first_name']);
$last_name = mysqli_real_escape_string($con2, $_POST['last_name']);
$email = mysqli_real_escape_string($con2, $_POST['email']);
$validation_code = md5($email + microtime());$sql0 ="INSERT INTO players
(first_name, last_name, email, validation_code)
VALUES ('$first_name', '$last_name','$email', '$validation_code')";$sql01 = "SELECT player_id FROM players WHERE email='$email'";
$result01 = $con2->query($sql01);

if ($result01->num_rows > 0) {
$row01 = $result01->fetch_assoc();

$playerID = $row01['player_id'];
echo $playerID; //In for debugging. Sometimes it works sometimes it doesn't$sql02 = "INSERT INTO team_players, cards (player_id, team_id)
VALUES('$playerID', '$id')";

Спасибо за любую помощь в этом.

0

Решение

Вы не можете вставить в две таблицы, используя один запрос.

Вы можете использовать сделка и оба они должны содержаться в одной транзакции.

В противном случае выполните два отдельных запроса для каждой вставки.
Еще одна вещь, вы не выполнили запрос для вставки в первую таблицу

  START TRANSACTION;
INSERT INTO team_players (player_id, team_id) VALUES (...);
INSERT INTO cards (player_id, team_id) VALUES  (...);
COMMIT;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]