2016-04-21 84 views
0

即時通訊還是新的SQL,希望你能幫助我從這個問題出來..我怎麼能從這兩個表admin_pengesahan,pemohon插入數據到一個表中調用senarai_pengesahan?插入新表

CREATE TABLE `admin_pengesahan` (
    `P_ID` INT(11) NOT NULL AUTO_INCREMENT, 
    `Ad_nama` VARCHAR(50) NULL DEFAULT NULL, 
    `Ad_jawatan` VARCHAR(50) NULL DEFAULT NULL, 
    `Ad_tarikh` DATE NULL DEFAULT NULL, 
    `Ad_keputusan` VARCHAR(50) NULL DEFAULT NULL, 
    PRIMARY KEY (`P_ID`), 
    CONSTRAINT `FK_admin_pengesahan_pemohon` FOREIGN KEY (`P_ID`) REFERENCES `pemohon` (`P_ID`) 
) 
COLLATE='latin1_swedish_ci' 
ENGINE=InnoDB 


CREATE TABLE `pemohon` (
`P_ID` INT(11) NOT NULL AUTO_INCREMENT, 
`K_nom_siri` VARCHAR(50) NOT NULL, 
`P_status` VARCHAR(50) NULL DEFAULT NULL, 
`P_nama` VARCHAR(100) NOT NULL, 
`P_jenis_aset` VARCHAR(100) NOT NULL, 
`P_pengguna_terakhir` VARCHAR(100) NOT NULL, 
`P_tarikh_rosak` DATE NOT NULL, 
PRIMARY KEY (`P_ID`, `K_nom_siri`), 
INDEX `FK_pemohon_info_kenderaan` (`K_nom_siri`) 
) 
COLLATE='latin1_swedish_ci' 
ENGINE=InnoDB 
+0

http://dev.mysql.com/doc/refman/5.7/en/insert.html – rmondesilva

+0

請提供樣本數據和期望的結果。 –

回答

0

首先,你需要從兩個表收集數據:

$sql = "SELECT * FROM admin_pengesahan"; 
$sqlPrepared = $conn->prepare($sql); 
$sqlPrepared->execute(); 

$rows_admin_pengesahan = $sqlPrepared->fetchAll(PDO::FETCH_ASSOC); 


$sql = "SELECT * FROM pemohon"; 
$sqlPrepared = $conn->prepare($sql); 
$sqlPrepared->execute(); 

$rows_pemohon = $sqlPrepared->fetchAll(PDO::FETCH_ASSOC); 

現在的信息行已經存儲在兩個不同的陣列。下一步將是您創建senarai_pengesahan表。現在您必須記住創建具有正確數據類型的所有列,以便您可以支持以上兩個表中的所有信息。由於值得注意的是兩個表的列數都不相同,我們可以肯定新表中會有大量的NULL值(只是一個單詞)。

一旦你已經創建了一個表,那麼你可以用類似下面的代碼插入值前進:

foreach ($rows_admin_pengesahan as $row) 
{ 
    $sql = "INSERT INTO senarai_pengesahan SET (P_ID, Ad_nama, /*...*/) VALUES (".$row['P_ID'].", ".$row['Ad_nama'].", /*...*/)"; 
    $sqlPrepared = $conn->prepare($sql); 
    $sqlPrepared->execute(); 
} 

我希望幫助!


注:我們沒有得到您是否想組織新表以特定的方式,以儘量減少NULL值的任何細節。無論如何,之前的代碼至少應該指向正確的方向。

+0

tq它幫助我:) – mzml

0
insert into pemohon(K_nom_siri,P_status,P_nama,P_jenis_aset,P_pengguna_terakhir,P_tarikh_rosak) values('abc','1','a'.'try','hello',2016-04-21); 

=> use single quote for varchar type. 
0
Insert into tbl_name(clm1,clm2,clm3,.....) values(clm1_value,clm2_value,clm3_value,......)