PHP - Вставить значения в базу данных, указанную c для каждого пользователя в таблице HTML - PullRequest
0 голосов
/ 25 марта 2020

Я не знаю, как лучше всего это сказать, поэтому постараюсь описать, чего я пытаюсь достичь. У меня есть таблица в такой форме, как

<form action="manager-match-report-run.php" method="post" autocomplete="off" name="registerForm">
    <div class="table-responsive">
        <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
            <thead>
                <tr>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Goals</th>
                    <th>Assists</th>
                    <th>Match Rating</th>
                    <th hidden>playerId</th>
                </tr>
            </thead>
            <tbody>
                <?php
                    $sql_players = "SELECT * FROM Player WHERE teamId = '$teamId' AND selected = '1'";
                    $res_players = mysqli_query($conn, $sql_players);

                    while($row_players = $res_players->fetch_assoc()) {
                        echo "<tr>";
                        echo "<td>" . $row_players["firstName"]. "</td>";
                        echo "<td>" . $row_players["lastName"]. "</td>";
                        echo "<td><div class='form-group'><input name='goals' class='form-control py-4' type='number'/></div></td>";
                        echo "<td><div class='form-group'><input name='assists' class='form-control py-4' type='number'/></div></td>";
                        echo "<td><div class='form-group'><input name='matchRating' class='form-control py-4' type='number' step='0.01' min='0' max='10'/></div></td>"
                    ?>
                    <td hidden><input name="playerId" value="<?php echo $row_players['playerId'];?>"></td>
                    <?php echo "</tr>";
                    }?>
                </tbody>
            </table>
        </div>
        <div class="form-group mt-4 mb-0"><button id="manager-report-btn" onclick="return confirmReport()" class="btn btn-primary btn-block" type="submit" name="manager-report">Confirm Report</button></div>
    </form>

form

Я ищу правильный способ вставить данные в правильные строки в Стол игрока. Например, обновите таблицу игроков, чтобы у Элисон было 5 голов, 1 помощь, 8 рейтингов матчей, у Бена 0 голов, 1 ассист, 7 матчей и др. c.

Я предполагаю, что мне придется использовать все oop некоторых сортов, но пока что не повезло, поэтому любая помощь или совет будут великолепны, спасибо:)

1 Ответ

1 голос
/ 25 марта 2020

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

Добавьте динамическое c имя для каждого элемента управления, например, вместо name='matchRating', используйте

$playerName = htmlentities($playername);
$inputname = sprintf("matchRating[%s]", $playerName);
printf("<input name=\"%s\" type=\"text\"/>", $inputname);

Когда форма отправлена, вы получаете данные в массиве, который вы можете l oop обновить, чтобы обновить записи вашей базы данных:

$matchRatings = $_GET["matchRating"];
foreach ($matchRatings as $playerName => $rating) {
   // Update player rating in database
   // Important: Do not forget to guard against SQL injection!
   $sql = sprintf("update MYTABLE set MATCHRATING=%d where PLAYERNAME='%s'", $rating, $playerName);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...