Обновление таблицы MySQL из таблицы PHP - PullRequest
0 голосов
/ 30 января 2019

Это только мой второй проект, очень новый, так что извините за мой неаккуратный код.Я пытаюсь сгенерировать таблицу из MySQL с дополнительным входным столбцом.В этом столбце я хочу, чтобы можно было ввести число, которое будет добавлено к исходной таблице MySQL «оценка», если это имеет смысл.Стол удаляется и создается каждый раз, когда начинается новая игра (не раздача) из-за участия разных игроков.Входные данные для каждой руки могут происходить до 50 раз, прежде чем таблица будет сброшена.Видите, код может иметь больше смысла или нет.Должно быть, я просто не могу обойти это сейчас.

<?php // defined variables to remove errors
$submit = 'add_scores';
$name = $message = "";
$hand = 0;
$array = $index = "";
$datatable = "cards_players"; // MySQL table name
?>

<?php 
if (isset($_POST[$submit])) {
//this is where my insert statement will go 
}

?>
   <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="formAcc">
    <ul style= "text-align: center">

    <article>
        <li>
            <label>Current Standing</label>
<?php   
$datatable = "cards_data"; // MySQL table name

$sql = "SELECT * FROM ".$datatable." WHERE player IS not NULL ORDER BY id ASC";
$rs_result = $connection->query($sql);

// Check connection
if ($connection->connect_error) {
    die("Connection failed: " . $connection->connect_error);
}            
?>

<?php
  echo '<table id="db_results">
  <colgroup>
    <col class="col15" />
    <col class="col15" />
    <col class="col15" />
    <col class="col20" />
  </colgroup>
<tr>
<th>Name</th>
<th>Previous Score</th>
<th>Current Score</th>
<th>This Hand</th>
</tr>';

while($row = $rs_result->fetch_assoc()) {
    echo "<tr class=\"center\">
        <td>". $row["player"] . "</td>
        <td>". $row["previous_score"] . "</td>
        <td>". $row["score"] . "</td>
        <td>"//. retain_fill ('text','hand','',$hand,'0') ."
        . '<input type="text" name="'.$row["player"].'" placeholder="';
            if (!empty($hand)) {echo $hand. '" value="'.$hand.'"/>';
        }
            else {echo 0 . '" value=""/>';}
        "</td>
        </tr>"; 
    }
echo "</table>";            
?>            
    </li>
    <li>
        <input type="submit" name="<?php echo $submit?>" value="Input Scores" style="margin-top: 5px;"/>

В настоящий момент я даже не уверен, как начать оператор вставки для каждого пользователя, поскольку я знаю, что это будет какой-то цикл.Любая помощь приветствуется :-)

1 Ответ

0 голосов
/ 30 января 2019

Спасибо @kry за руководство и хороший ответ.Требовалось 1 исправление и окончательный оператор запроса следующим образом: Первое исправление =

while($row = $rs_result->fetch_assoc()) {
    echo "<tr class=\"center\">
        <td>". $row["player"] . "</td>
        <td>". $row["previous_score"] . "</td>
        <td>". $row["score"] . "</td>
        <td>"//. retain_fill ('text','hand','',$hand,'0') ."
        . '<input type="text" name="'.$row["player"].'" placeholder="';
            if (!empty($hand)) {echo $hand. '" value="'.$hand.'"/>';
        }
            else {echo 0 . '" value=""/>';}
        "</td>
        </tr>"; 
    }

Должно быть

while($row = $rs_result->fetch_assoc()) {

    echo "<tr class=\"center\">
        <td>". $row["player"] . "</td>
        <td>". $row["previous_score"] . "</td>
        <td>". $row["score"] . "</td>
        <td>". '<input type="text" name="player['.$row['player'].']" placeholder="0" value=""/>';
        }

Тогда запрос к базе данных сработал так:

foreach ($_POST['player'] as $player=>$hand){   
    $query  = "Update cards_data SET player = '$player', previous_score = '$hand' WHERE player = '$player' LIMIT 1;"; 
$result = mysqli_query($connection, $query);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...