Я довольно новичок в мире SQL, поэтому прошу прощения за мое незнание этого.
У меня есть форма на странице администратора, которая добавляет игрока в базу данных команды. Когда форма отправлена, мне нужно:
Игрок вставляется в таблицу игроков (player_id является первичным ключом и используется на следующем шаге).
Оператор select выполняется для получения player_id.
Ниже представлено лучшее из того, что я пробовал:
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')";
Спасибо за любую помощь в этом.
Вы не можете вставить в две таблицы, используя один запрос.
Вы можете использовать сделка и оба они должны содержаться в одной транзакции.
В противном случае выполните два отдельных запроса для каждой вставки.
Еще одна вещь, вы не выполнили запрос для вставки в первую таблицу
START TRANSACTION;
INSERT INTO team_players (player_id, team_id) VALUES (...);
INSERT INTO cards (player_id, team_id) VALUES (...);
COMMIT;
Других решений пока нет …