繁体   English   中英

php(数组)-> mysql(带有外键的多行)更新表中特定行,其中id和行号不同

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM