2016-04-21 64 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,......)