首页 > 解决方案 > 如何在 php 中使用 sql 更新 2 个表?

问题描述

我有2 tables,但是更新后,两个表中的数据都不起作用。我也有 2 个表,其中第一个表没有外键,第二个表有外键。 例如,作为第一张表的 skb 表 没有外键,而作为第二张表的 pengikut_skb 表有外键。

skb表:

id_skb (PK)


pengikut_skb 表:

id_pengikut_skb (PK)

id_skb (FK)


$koneksi= mysqli_connect("localhost", "root", "","test");

    $query1 = ("UPDATE skb SET nl='$nl', ttl='$ttl', jk='$jk', pekerjaan='$pekerjaan', status='$status', agama='$agama', nktp='$nktp', kewa='$kewa', aktp='$aktp', aa='$aa', at='$at', mbp='$mbp', dk='$dk', lb='$lb', jp='$jp', nskl='$nskl', dp='$dp', jenis_kep='$jenis_kep', mb='$mb', syarat_lampiran='$syarat_lampiran', kode_surat1='$kode_surat1', kode_surat2='$kode_surat2', kode_surat3='$kode_surat3', buku_tamu='$buku_tamu', kode_surat4='$kode_surat4', tahun_kode_surat='$tahun_kode_surat', riwayat_kelola='$riwayat_kelola' WHERE id_skb ='$id_skb'");
    $oke1=mysqli_query($koneksi,$query1);

    $query2 = (" UPDATE pengikut_skb SET nama_atau_jumlah_pengikut='$nama_atau_jumlah_pengikut', umur_pengikut='$umur_pengikut', pekerjaan_pengikut='$pekerjaan_pengikut', keterangan_pengikut='$keterangan_pengikut', nama_pengikut='$nama_pengikut', umur_pengikut2='umur_pengikut2', pekerjaan_pengikut2='$pekerjaan_pengikut2', keterangan_pengikut2='$keterangan_pengikut2', nama_pengikut2='$nama_pengikut2', umur_pengikut3='$umur_pengikut3', pekerjaan_pengikut3='$pekerjaan_pengikut3', keterangan_pengikut3='$keterangan_pengikut3', WHERE id_pengikut_skb = '$id_pengikut_skb'");
    $oke2=mysqli_query($koneksi,$query2);

标签: phpmysqlsql

解决方案


UPDATE skb 
  JOIN pengikut_skb USING (id_skb)
SET skb.column1 = '$value1'
  , pengikut_skb.column2 = '$value2'
-- and so on for each column in each table which must be updated
WHERE pengikut_skb.id_pengikut_skb = '$id_pengikut_skb'
-- and so on - all conditions which defines what record(s) must be updated in each table
--  AND skb.column3 = $value3
--  AND pengikut_skb.column4 = $value4

您不需要skb.id_skb像在第一个查询中那样指定值,因为它是由$id_pengikut_skb第二个查询中使用的值定义的。


推荐阅读