![](/img/trans.png)
[英]MYSQL update a row if all multiple rows that belong to the same foreign ID have same value
[英]php (array)-> mysql (multiple rows with a foreign key) Update specific row in table where id and row number varies
$schoolinfo = mysqli_prepare($con, "UPDATE table SET firstname=?, lastname=? from school where foreignkey='$id'");
mysqli_stmt_bind_param($schoolinfo,'ss', $firstname, $lastname)
for ($i=0;$i<count($_POST['row']);$i++){
$firstname = mysqli_real_escape_string($con, $_POST['firstname'][$i]);
$lastname = mysqli_real_escape_string($con, $_POST['lastname'][$i]);
mysqli_stmt_execute($schoolinfo);
}
这将更新具有相同名字和姓氏的所有行。
我想从选择中更新行,其中Foreignkey ='$ id'和rownumber ='i'
有任何查询或子查询吗?
只需从更新查询中将其from school
删除from school
然后为您的表命名即可。
像那样
$schoolinfo = mysqli_prepare($con, "UPDATE school SET firstname=?, lastname=? where foreignkey='$id'");
您混合使用SELECT和UPDATE。
我不知道是不是我错了,还是在循环之前绑定了名字和姓氏。
尝试这个
$schoolinfo = mysqli_prepare($con, "UPDATE school SET firstname=?, lastname=? WHERE foreignkey='$id'");
for ($i=0;$i<count($_POST['row']);$i++){
$firstname = $_POST['firstname'][$i];
$lastname = $_POST['lastname'][$i];
mysqli_stmt_bind_param($schoolinfo,'ss', $firstname, $lastname)
mysqli_stmt_execute($schoolinfo);
}
尝试这个:
$schoolinfo = mysqli_prepare($con, "UPDATE school SET firstname=?, lastname=?
WHERE foreignkey=? and rownumber = ?");
mysqli_stmt_bind_param($schoolinfo,'sssi', $firstname, $lastname, $id, $i);
for ($i=0;$i<count($_POST['row']);$i++){
$firstname = $_POST['firstname'][$i];
$lastname = $_POST['lastname'][$i];
mysqli_stmt_execute($schoolinfo);
}
你没有rownumber
查询。 最好对要替换的所有变量使用bind_param
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.