Обновление PHP с использованием формы переменной длины

0

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

Чтобы загрузить данные в форму, я использовал этот скрипт php:

$conn = new mysqli($host,$username,$password,$db_name)
        or die ('Cannot connect to db');
        $result = $conn->query("select playerNum, playerName, baskets from dPlayers");
        while ($row = $result->fetch_assoc()) {
              $dNum = $row['playerNum'];
              $dName = $row['playerName']; 
              $dBasket = $row['baskets'];
              echo '<tr>
              <th scope="row">'.$dNum.'</th>
              <td>'.$dName.'</td>
              <td>'.$dBasket.'</td>
              <td><input type="text" name="dAdd'.$dNum.'" placeholder="+ Baskets"></td>
              <td><input type="hidden" name="dAddId'.$dNum.'" value="'.$dNum.'"></td>
              </tr>';
        }

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

Как только это будет отправлено, я могу сделать все из Str для Int и математики, чтобы получить новые баллы, но как я могу обновить базу данных MYSQL, просто не записав в заявлении для каждого номера игрока?

Также для добавления скрытый ввод действует как способ, когда я могу ссылаться на эту строку на конкретный игрок в моих текущих попытках оператора.

-EDIT. К сожалению, должен был сказать, что форма позволяет администратору иметь возможность обновлять каждого игрока одновременно, а не только по одному.

  • 0
    используйте предложение WHERE .
  • 0
    Я не совсем уверен, о чем вы спрашиваете, но для обновления базы данных для каждого из игроков вы просто создадите INSERT передавая обновленное значение для счета и используя предложение WHERE для обозначения нужного вам игрока. обновить. Что-то вроде "UPDATE dPlayers SET score=" . $score . " WHERE player=" . $dNum .
Показать ещё 5 комментариев
Теги:
forms

1 ответ

0
Лучший ответ

Вы можете использовать массив входов и опционально устанавливать индекс на номер игрока вместо скрытого ввода:

<input type="text" name="dAdd[$dNum]" value="$dBasket" placeholder="+ Baskets">

Затем цикл и обновление:

foreach($_POST['dAdd'] as $number => $baskets) {
    $stmt = $conn->prepare("UPDATE dPlayers SET baskets = ? WHERE playerNum = ?");
    $stmt->bind_param('ii', $baskets, $number);
    $stmt->execute();
}
  • 0
    офигенно, спасибо! Я попробую и дам вам знать, как это происходит
  • 0
    Кажется, на правильном пути определенно. Я не думал об использовании bind_param для назначения переменных внутри цикла. Однако это не работает. Там нет ошибок, так что, кажется, что-то работает, но на самом деле это не обновление базы данных
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню