插入新表

时间:2016-04-21 02:20:43

标签: php sql

我仍然是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

3 个答案:

答案 0 :(得分: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.

答案 1 :(得分:0)

Insert into tbl_name(clm1,clm2,clm3,.....) values(clm1_value,clm2_value,clm3_value,......)

答案 2 :(得分: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值的细节。无论如何,以前的代码至少应该指向正确的方向。