将选定的无线电值插入table-php mysql的特定id

时间:2014-06-14 11:49:28

标签: php mysql

我在数据库中有一个表,当想要拒绝或接受某人的应用程序时,我只需选择单选按钮并将值发送到数据库中的表。

但问题是该值是分配给新行而不是特定学生ID。这是我的表,因为你看到有2个新行获得另一个id。这是我的代码和表格:

<?php

  $status  = $_POST["status"];
  $connect = mysqli_connect("localhost","root","admin","form");
  if (!$connect) {
          die('Connect error:'. mysqli_error());
      }
      $result = mysqli_query($connect, "INSERT INTO students (status) VALUES ('$status')    ");


?>

    idstudents |fname | lname| age | nationality | status
    .....................................................
        1      |Tom   | Bern | 23  | American    | 
        2      |Lily  | Wayne| 24  | British     |
        3      |NULL  | NULL | NULL| NULL        | accepted

2 个答案:

答案 0 :(得分:0)

INSERT语句用于...插入新行。您需要的是一个UPDATE语句,用于将值应用于您要使用idstudents选择的某一行。

$status  = $_POST["status"];
$studentid  = $_POST["studentid"];

...

$result = mysqli_query($connect, "UPDATE students SET status = '$status' WHERE idstudents = $studentid;");

另外,在使用用户输入的$ _POST(或其他)值时务必小心,如果其他人将使用此服务,您可能需要清理它们在插入之前,以避免潜在的安全漏洞。

答案 1 :(得分:0)

要进行更新,您需要UPDATE语句,不要忘记在表单上添加student_id。考虑这个例子:(同一页面处理)。

<?php

$students = array();
$link = new mysqli('localhost', 'username', 'password', 'database');

if(isset($_POST['submit'], $_POST['status'])) {
    $status = $_POST['status'];
    foreach($status as $student_id => $status_value) {
        $stmt = $link->prepare('UPDATE students SET status = ? WHERE idstudents = ?');
        $stmt->bind_param('ss', $status_value, $student_id);
        $stmt->execute();
    }
}

$query = mysqli_query($link, 'SELECT * FROM students');
while($row = $query->fetch_assoc()) {
    $students[] = $row;
}

?>

<form method="POST" action="">
    <?php foreach($students as $key => $value): ?>
        <fieldset>
            <p>
                Name: <?php echo $value['fname'] . " " . $value['lname']; ?><br/>
                Status: <b><?php echo ($value['status'] != '') ? $value['status'] : 'N/A'; ?></b><br/>
                <input type="radio" name="status[<?php echo $value['idstudents']; ?>]" value="accepted" /> Accepted
                <input type="radio" name="status[<?php echo $value['idstudents']; ?>]" value="rejected" /> Rejected
            </p>
        </fieldset>
    <?php endforeach; ?>
    <input type="submit" name="submit" value="Update" />
</form>
  

注意:由于您现在使用的是mysqli,请利用参数化查询。不要在查询中直接使用$ _POST值。