Php 从两个不同的表更新多个具有相同id的数据

Php 从两个不同的表更新多个具有相同id的数据,php,mysql,Php,Mysql,我的桌子是这样的 maklumatakaun | detailakaun ---------------------------------- id(A.I) | idDetail(A.I) NoAkaun | KodLokasi KodBahagian | NoTelefon KodKategori | KodJenisAkaun KodKategori | id Tarif

我的桌子是这样的

maklumatakaun    |   detailakaun
----------------------------------
id(A.I)          |     idDetail(A.I)
NoAkaun          |     KodLokasi
KodBahagian      |     NoTelefon
KodKategori      |     KodJenisAkaun
KodKategori      |     id
Tarif            |     
我试图同时更新两个表中的数据(maklumatakaun,detailakaun)在detailakaun中有“KodLokasi”、“KodJenisAkaun”和“NoTelefon”列,在一个id下可能有多个数据项。以下是我目前得到的结果

摘录(元);

如果(美元邮政){


此代码将更新两个表中的所有列,但假设一个帐户已在3个“KodLokasi”、“KodJenisAkaun”和“NoTelefon”中注册,那么当仅使用3个列中的一个进行更新时,它将重复到3。如何正确更新此代码?

如何正确更新

使用mysqliPDO而不是不推荐的mysql接口

不要用对函数的无意义调用覆盖post中的变量值,该函数在被调用的地方无效

UPDATE
语句中使用
WHERE
子句来标识需要更新的行。或者,如果两个表由一组列关联,则使用联接操作来标识行

为了爱这个世界上所有美好的事物……停止编写易受SQL注入攻击的代码。停下来。使用预处理语句绑定占位符。如果您坚持使用不支持预处理语句的接口,则正确地避开包含的不安全值在SQL文本中


这就是正确更新它的方法。

第二条update语句似乎需要WHERE子句。确定要更新的行。此代码对SQL注入开放。现在已经是2015年了,为什么我们要使用被弃用了多少年的mysql接口进行示例?mysqli和PDO接口都支持或者准备好的语句。我不知道为什么在
更新
查询之后会调用
mysql\u insert\u id
函数。为什么会有塑料?该函数的返回仅在插入成功插入一行(该行的列由AUTO\u INCREMENT指定)之后立即有效。
$NoAkaun            = isset($_POST['NoAkaun'])          ? $_POST['NoAkaun'] : '';
$KodBahagian        = isset($_POST['KodBahagian'])      ? $_POST['KodBahagian'] : '';
$Tarif              = isset($_POST['Tarif'])            ? $_POST['Tarif'] : '';
$KodDaerah          = isset($_POST['KodDaerah'])        ? $_POST['KodDaerah'] : '';
$KodKategori        = isset($_POST['KodKategori'])      ? $_POST['KodKategori'] : '';
$NoTelefon          = isset($_POST['NoTelefon'])        ? $_POST['NoTelefon'] : '';
$KodLokasi          = isset($_POST['KodLokasi'])        ? $_POST['KodLokasi'] : '';
$KodJenisAkaun      = isset($_POST['KodJenisAkaun'])    ? $_POST['KodJenisAkaun'] : '';
$akaun_id           = isset($_POST['akaun_id'])         ? $_POST['akaun_id'] : '';






$sql = mysql_query("UPDATE maklumatakaun
                    SET NoAkaun = '$NoAkaun' , 
                    KodBahagian = '$KodBahagian' , 
                    KodDaerah = '$KodDaerah' , 
                    KodKategori = '$KodKategori' , 
                    Tarif = '$Tarif' , 
                    WHERE id = '$id'");
$akaun_id = mysql_insert_id();
foreach ($NoTelefon AS $i => $telefon){
$sql= mysql_query ("UPDATE detailakaun
                    SET KodJenisAkaun = '$KodJenisAkaun[$i]' ,  
                    KodLokasi = '$KodLokasi[$i]' , 
                    NoTelefon = '$telefon'
                    ");