0

I don't know how to add a double record to db.

I have form with double same row content. I would like to add a dynamic line in the next step using js but at this point I used double html to validate it.

<form class="formAddCoupon" action="/?dashboard=coupon" method="post">
                    <div class="windowEvents">
                        <div class="row">
                            <input type="text" class="teamInput" name="team1">
                            <input type="text" class="teamInput" name="team2">
                            <select name="score" id="selectOptions">
                                <option value="Liczba bramek">Liczba bramek</option>
                                <option value="Liczba rzutów rożnych">
                                        Liczba rzutów rożnych</option>
                                <option value="Ilość kartek">Liczba kartek</option>
                                <option value="Wygrana drużyny">Wygrana drużyny</option>
                                <option value="Wygrana drużyny lub połowy">
                                        Wygrana drużyny lub połowy</option>
                                <option value="Wygrana połowy">Wygrana jednej z połów</option>
                                <option value="Hendicap">Hendicap</option>
                                <option value="Ilość punktów">Liczba punktów</option>
                            </select>
                            <input type="text" class="scoreInput" name="type_score">
                        </div>
                        <div class="row">
                            <input type="text" class="teamInput" name="team1">
                            <input type="text" class="teamInput" name="team2">
                            <select name="score" id="selectOptions">
                                <option value="Liczba bramek">Liczba bramek</option>
                                <option value="Liczba rzutów rożnych">
                                        Liczba rzutów rożnych</option>
                                <option value="Ilość kartek">Liczba kartek</option>
                                <option value="Wygrana drużyny">Wygrana drużyny</option>
                                <option value="Wygrana drużyny lub połowy">
                                        Wygrana drużyny lub połowy</option>
                                <option value="Wygrana połowy">Wygrana jednej z połów</option>
                                <option value="Hendicap">Hendicap</option>
                                <option value="Ilość punktów">Liczba punktów</option>
                            </select>
                            <input type="text" class="scoreInput" name="type_score">
                        </div>
                    </div>
                    <div class="valueAmountRow">
                        <input
                            type="number"
                            name="bid_amount"
                            id="bid_amount"
                            placeholder="Stawka"
                            min="0"
                            step="any"
                        >
                        <input
                            type="number"
                            name="winner_amount"
                            id="winner_amount"
                            placeholder="Wygrana"
                            min="0"
                            step="any"
                        >
                        <input type="submit" value="Dodaj">
                    </div>
                </form>

Controller.php:

$data = $this->getRequestPost();
If(!empty($data)) {
                    $couponData = [
                        'bid_amount' => $data['bid_amount'],
                        'winner_amount' => $data['winner_amount'],
                        'team1' => $data['team1'],
                        'team2' => $data['team2'],
                        'score' => $data['score'],
                        'type_score' => $data['type_score'],

                    ];
                    $this->db->createCoupon($couponData);
                }

Database.php

public function createCoupon(array $data)
    {
        try {
            $this->createNewCoupon($data);
        } catch(Throwable $e) {
            dump($e);
            throw new StorageException('Nie udało się wysłać kuponu', 400, $e);
        }
    }

    private function createNewCoupon($data): void
    {
            $nr_coupon =  trim($this->connection->quote($this->checkIssetCode()));
            $created = $this->connection->quote(date('Y-m-d H:i:s'));
            $bid_amount = trim($this->connection->quote($data['bid_amount']));
            $winner_amount = trim($this->connection->quote($data['winner_amount']));
            $team1 = trim($this->connection->quote($data['team1']));
            $team2 = trim($this->connection->quote($data['team2']));
            $score = trim($this->connection->quote($data['score']));
            $typeScore = trim($this->connection->quote($data['type_score']));

            $insertNumberCoupon = "INSERT INTO
                coupon_number(
                    nr_coupon,
                    created,
                    bid_amount,
                    winner_amount
                )
                VALUES(
                    $nr_coupon,
                    $created,
                    $bid_amount,
                    $winner_amount
                )";



            $sql_create_number_coupon = $this->connection->prepare($insertNumberCoupon);
            if($sql_create_number_coupon)
            {
                $sql_create_number_coupon->execute();
                $id = (int) $this->connection->lastInsertId();
                $addEvent = "INSERT INTO
                    events_at_coupon(
                        number_id_coupon,
                        team1,
                        team2,
                        score,
                        type_score
                    )
                    VALUES($id,$team1,$team2,$score,$typeScore)";

                $sql_add_event_to_table = $this->connection->prepare($addEvent);
                if($sql_add_event_to_table)
                {
                    $sql_add_event_to_table->execute();
                }
            }

    }

When i send a form only one record is added to database. I know why, but what do i have to do to get a double record ?

Throw
  • 1
  • I recommend you to read: [Multiple inputs with same name through POST in php](https://stackoverflow.com/questions/7880619/multiple-inputs-with-same-name-through-post-in-php) – M. Eriksson Jun 11 '22 at 13:44
  • Thanks dude :) Do you have any more ideas on how to solve it ? – Throw Jun 11 '22 at 14:04

0 Answers0