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.'"/>';