Php 如何使用网站中的数据更新数据库中的一行?

Php 如何使用网站中的数据更新数据库中的一行?,php,sql,Php,Sql,我试图从下拉列表中为每个学生分配一个公司,并在数据库中的正确学生下更新该公司 基本上,我的网站就是这样的 ___________________________________________________________________ | Student ID | Admin No | Student Name | Company List | | 1 | 1234 | ABC | <drop dow

我试图从下拉列表中为每个学生分配一个公司,并在数据库中的正确学生下更新该公司

基本上,我的网站就是这样的

___________________________________________________________________
| Student ID    | Admin No     | Student Name  | Company List     |
|   1           | 1234         | ABC           | <drop down list> |
|   2           | 2345         | BCD           | <drop down list> |
|   3           | 3456         | CDE           | <drop down list> |
|   4           | 4567         | DEF           | <drop down list> |
我现在的问题实际上是:

  • 如何使网站上的学生ID与数据库中的学生ID匹配,以便正确更新
  • 为什么在使用INSERT查询时只反映下拉列表中的第一个选项

我对PHP很陌生,所以我真的很难做到这一点

您没有保存学生id的输入,即未设置
$\u POST['student\u id']
,您还必须验证用户输入,然后才能将其传递给查询,您可以使用准备好的语句

尝试使用隐藏字段,如

echo '<input type="hidden" name="student_id" value="'.$studentid.'"/>';
echo';

因为您只插入了一条语句,而这条语句不在循环中。目前,您对SQL注入非常开放。您应该使用参数化queries@ArunKumar你指的是哪一种说法?我应该使用哪个循环?循环?while loop?@Clockwork Muse你使用参数化查询的意思是什么?@Angelica我想你提到的只有一条insert语句,我显然是这么说的。我已经包含了隐藏字段,但为什么它仍然没有在数据库中更新?我将它用作update语句。更新学生详细信息集公司=“$ddlvalues.”其中学生id=“$studentid.”;
<?
    $con=mysqli_connect("...","....","....","....");
        if (!$con)
        {
        die('Could not connect: ' . mysqli_errno());
        }


$ddlvalues = $_POST['ddl'];
$studentid = $_POST['student_id'];
$query = mysqli_query($con, "INSERT INTO student_details(company) VALUES('" . $ddlvalues . "');");
?>
UPDATE student_details SET company = '" . $ddlvalues . "' WHERE student_id = '" . $studentid . "';
echo '<input type="hidden" name="student_id" value="'.$studentid.'"/>';