Я пытаюсь обновить определенные строки в таблице, которая построена из формы. Я использую флажки, но вся таблица обновляется вместо конкретной строки, которую я заполняю. Я попробовал ISSET, чтобы узнать, могу ли я заставить его обновлять только при пометке ящиков, но это не сработало. Вот что я имею (очевидно, не весь код, но я могу предоставить больше по мере необходимости):
<?php include 'connect.php'; // All possible parameters $params = array( 'Student', 'homeroom', 'teacher' ); $wheres = array(); foreach ($params as $param) { // Is the param set? // If so, let's add it to our list of WHERE clauses if (isset($_GET[$param]) && !empty($_GET[$param])) { $wheres[] = sprintf("%s LIKE '%%%s%%'", $param, mysqli_real_escape_string($connect, $_GET[$param])); } } if ($db_found) { // Now let's make the SQL. $SQL = 'SELECT * FROM studentlist'; // We only want to add the WHERE clause if we had some parameters passed if (count($wheres) > 0) { $SQL .= ' WHERE ' . implode(' OR ', $wheres); } $result = mysqli_query($connect, $SQL); while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { echo "<tr>"; echo "<td>" . $row['Student'] . "</td>"; echo "<td>" . $row['homeroom'] . "</td>"; echo "<td>" . "<input type='checkbox' name='responsibility' value='E'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='responsibility' value='G'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='responsibility' value='S'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='responsibility' value='N'>" . "</td>"; echo "<td>" . "" . "</td>"; echo "<td>" . "<input type='checkbox' name='organization' value='E'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='organization' value='G'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='organization' value='S'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='organization' value='N'>" . "</td>"; echo "<td>" . "" . "</td>"; echo "<td>" . "<input type='checkbox' name='independentwork' value='E'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='independentwork' value='G'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='independentwork' value='S'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='independentwork' value='N'>" . "</td>"; echo "<td>" . "" . "</td>"; echo "<td>" . "<input type='checkbox' name='collaboration' value='E'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='collaboration' value='G'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='collaboration' value='S'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='collaboration' value='N'>" . "</td>"; echo "<td>" . "" . "</td>"; echo "<td>" . "<input type='checkbox' name='initiative' value='E'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='initiative' value='G'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='initiative' value='S'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='initiative' value='N'>" . "</td>"; echo "<td>" . "" . "</td>"; echo "<td>" . "<input type='checkbox' name='selfregulation' value='E'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='selfregulation' value='G'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='selfregulation' value='S'>" . "</td>"; echo "<td>" . "<input type='checkbox' name='selfregulation' value='N'>" . "</td>"; echo "</tr>";
И тогда у меня есть это как мое обновление:
<?php include 'connect.php'; // Get values from form $resp=$_POST['responsibility']; $org=$_POST['organization']; $ind=$_POST['independentwork']; $coll=$_POST['collaboration']; $init=$_POST['initiative']; $self=$_POST['selfregulation']; // Insert data into mysqli $sql = "UPDATE studentlist SET responsibility='$resp', organization='$org', independentwork='$ind', collaboration='$coll', initiative='$init', selfregulation='$self'"; $result=mysqli_query($connect, $sql); // if successfully insert data into database, displays message "Successful". if($result){ echo "Successful"; } else { echo "ERROR"; } ?> <?php // close connection mysqli_close($connect); ?>
Я понимаю, что у меня есть все флажки, названные одинаковыми, но я не уверен, как отойти от этого. И да, я новичок в этом !!!!!
Вы должны добавить к концу своего запроса условие WHERE
чтобы увеличить только нужную строку, если вы используете, например, StudentId
в качестве идентификатора вашего ученика, тогда вы пишете:
$sql = "UPDATE studentlistSET responsibility='$resp', organization='$org', independentwork='$ind',collaboration='$coll', initiative='$init', selfregulation='$self' WHERE StudentId='$studentId' ;