更新两个表中的数据。一种在一列中包含多个数据

Posted

技术标签:

【中文标题】更新两个表中的数据。一种在一列中包含多个数据【英文标题】:Updating data in two table. one which contain multiple data in one column 【发布时间】:2015-03-12 07:21:28 【问题描述】:

我正在尝试一次更新两个表中的数据(maklumatakaun,detailakaun),在 detailakaun 中有“KodLokasi”、“KodJenisAkaun”和“NoTelefon”列,在一个 ID 下可能有多个数据条目。这是我到目前为止得到的结果

extract ($_POST);

if ($_POST) 

    $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'
                        ");

此代码将更新两个表中的所有列,但假设一个帐户已注册 3 个“KodLokasi”、“KodJenisAkaun”和“NoTelefon”,然后当仅使用 3 个列中的一个进行更新时,它将重复自身到 3. 我怎样才能正确更新这个?

【问题讨论】:

【参考方案1】:
foreach ($NoTelefon AS $i => $telefon)
$sql= mysql_query ("UPDATE detailakaun
                    SET KodJenisAkaun = '$KodJenisAkaun[$i]' ,  
                    KodLokasi = '$KodLokasi[$i]' , 
                    NoTelefon = '$telefon'
                    ");

$NoTelefon 有 3 个数据并使用 foreach 强制循环 3 次

只需对 3 个数据使用 1 个查询

$sql= mysql_query ("UPDATE detailakaun
                    SET KodJenisAkaun = '$KodJenisAkaun[1]' ,  
                    KodLokasi = '$KodLokasi[1]' , 
                    NoTelefon = '$NoTelefon[1]'
                    ");

希望这提供了一个想法,先格式化查询然后执行

【讨论】:

所以你建议首先输入数字?老实说,我不明白,先生 取决于 $NoTelefon。执行 print_r($NoTelefon); 时看到的内容?

以上是关于更新两个表中的数据。一种在一列中包含多个数据的主要内容,如果未能解决你的问题,请参考以下文章

两个表,根据条件批量更新其中一个表的某一列数据。(高分求救,在线等待。)

更新触发器以将两个不同表中的数据添加到审计表中

我想更新sql 表1中的某一列数值,这个数值是从另外一个表中取出来的。语句怎么写

sql将一个表中的某一列数据更新到另一个表中

Mysql 索引视图

如何一次将数据插入和更新到 EF 多个表中