![](/img/trans.png)
[英]How can I create a value from two other values in the same table in my SQL?
[英]How can i use the value of the id in my other table as i create it automated
我有这两个表palle_tb
和csvName
我试图使用palle_tb
到我的csvName
中的FK_Name
的 id
,但这些表已连接,但我在FK_Name中没有任何值。
我很确定我应该在':FK_Name' =>
里面添加一个变量,但是不知道要写什么,因为我已经有了FK_Name INT(11), FOREIGN KEY (FK_Name) REFERENCES palle_tb(id),
这是我的代码:
public function createPalleTable($latest_filename){
return $this->db->toList("CREATE TABLE IF NOT EXISTS `palle_tb`(
id INT(11) AUTO_INCREMENT PRIMARY KEY,
Palle_nr VARCHAR(50),
Varenummer VARCHAR(50),
Ordre_nummer VARCHAR(50),
Operatoer VARCHAR(50),
Maskine_nr VARCHAR(50),
Raavare_batch_nr VARCHAR(50),
Dato_ur_stillet VARCHAR(50),
Klokke_fuldsvejst VARCHAR(50),
Fuldstoebning_af_klokke VARCHAR(50),
Afgratning_af_overflade VARCHAR(50),
Vaegt DECIMAL(10,2))
");
}
public function insertPalleTable($latest_filename ,$palledata){
return $this->db->toList("INSERT INTO `palle_tb` (`Palle_nr`, `Varenummer`, `Ordre_nummer`, `Operatoer`, `Maskine_nr`,
`Raavare_batch_nr`, `Dato_ur_stillet`,`Klokke_fuldsvejst`,`Fuldstoebning_af_klokke`,`Afgratning_af_overflade`,`Vaegt`)
VALUES (:Palle_nr, :Varenummer, :Ordre_nummer, :Operatoer, :Maskine_nr, :Raavare_batch_nr, :Dato_ur_stillet,
:Klokke_fuldsvejst, :Fuldstoebning_af_klokke, :Afgratning_af_overflade, :Vaegt)",
[
':Palle_nr' => $palledata[0],
':Varenummer'=> $palledata[1],
':Ordre_nummer'=> $palledata[2],
':Operatoer'=> $palledata[3],
':Maskine_nr'=> $palledata[4],
':Raavare_batch_nr'=> $palledata[5],
':Dato_ur_stillet'=> $palledata[6],
':Klokke_fuldsvejst'=> $palledata[7],
':Fuldstoebning_af_klokke'=> $palledata[8],
':Afgratning_af_overflade'=> $palledata[9],
':Vaegt'=> $palledata[10]
]
);
}
/*The idea with the functions under this is that it creates a table with the Name of the data only and creates a foreign key to connect them*/
public function createCsvTable(){
return $this->db->toList("CREATE TABLE IF NOT EXISTS `CsvName`(
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
FK_Name INT(11),
FOREIGN KEY (FK_Name) REFERENCES palle_tb(id),
Name VARCHAR(50))
");
}
public function insertCsvData($myArray){
$this->db->query("INSERT INTO CsvName (Name,FK_Name)
VALUES (:Name,:FK_Name)",
[
':Name' => $myArray[0], /*This array contains all my data, but when i add the [0] it only takes the Name*/
':FK_Name' => /*This should contain the id from the palle_tb i need help with how to get that*/
]
);
}
如果您需要按钮,那么这里是该代码。 我需要它是自动的,所以用外键进行选择不会起作用。
if (isset($_POST['btn-upload'])){
copy("$sourcepath/$latest_filename","$copy/$latest_filename");
// Here i split the csv file, from second line. and using the first and fourth lines as the headers.
if (($openfile = fopen("$copy/$latest_filename", "r")) !== false) {
$header1 = fgetcsv($openfile, 1000, ";"); // consume, but don't use
$csv->createPalleTable($latest_filename);
$csv->insertPalleTable($latest_filename, array_map("toNumber", fgetcsv($openfile, 1000, ";")));
$delimiting_row = fgetcsv($openfile, 1000, ";"); // consume, but don't use
$header2 = fgetcsv($openfile, 1000, ";"); // consume, but don't use
while($row = fgets($openfile)){
// can parse further $row by usingstr_getcsv
$myArray = explode(';', $row);
$myArray = array_map("utf8_encode", $myArray);
$myArray = array_map("toNumber", $myArray);
echo'<pre>';
print_r($myArray);
echo'</pre>';
$csv->createCsvTable();
$csv->insertCsvData($myArray);
}
}
fclose($openfile);
}
任何帮助表示赞赏!
我是这样做的。
public function createGodTable()
{
return $this->db->toList("CREATE TABLE IF NOT EXISTS `Angle`(
id INT(11) AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50),
Datum VARCHAR(50),
Property VARCHAR(50),
Criterion VARCHAR(50),
Type VARCHAR(50),
Nominal DECIMAL(10,2),
Actual DECIMAL(10,2),
Tolminus DECIMAL(10,2),
Tolplus DECIMAL(10,2),
Dev DECIMAL(10,2),
Palle_nr VARCHAR(50),
Varenummer VARCHAR(50),
Ordre_nummer VARCHAR(50),
Operatoer VARCHAR(50),
Maskine_nr VARCHAR(50),
Raavare_batch_nr VARCHAR(50),
Dato_ur_stillet VARCHAR(50),
Klokke_fuldsvejst VARCHAR(50),
Fuldstoebning_af_klokke VARCHAR(50),
Afgratning_af_overflade VARCHAR(50),
Vaegt DECIMAL(10,2))
");
}
public function insertGodTable($myArray)
{
return $this->db->toList("INSERT INTO `Angle` (`Name`,`Datum`, `Property`, `Criterion`, `Type`, `Nominal`,
`Actual`, `Tolminus`,`Tolplus`,`Dev`,`Palle_nr`,`Varenummer`,`Ordre_nummer`,`Operatoer`,`Maskine_nr`,`Raavare_batch_nr`,`Dato_ur_stillet`,`Klokke_fuldsvejst`,`fuldstoebning_af_klokke`,`Afgratning_af_overflade`,`Vaegt`)
VALUES (:Name, :Datum, :Property, :Criterion, :Type, :Nominal, :Actual, :Tolminus,
:Tolplus, :Dev, :Palle_nr, :Varenummer, :Ordre_nummer, :Operatoer, :Maskine_nr ,:Raavare_batch_nr, :Dato_ur_stillet, :Klokke_fuldsvejst, :Fuldstoebning_af_klokke, :Afgratning_af_overflade, :Vaegt)",
[
':Name' => $myArray[0],
':Datum' => $myArray[1],
':Property'=> $myArray[2],
':Criterion'=> $myArray[3],
':Type'=> $myArray[4],
':Nominal'=> $myArray[5],
':Actual'=> $myArray[6],
':Tolminus'=> $myArray[7],
':Tolplus'=> $myArray[8],
':Dev'=> $myArray[9],
':Palle_nr'=> $myArray[10],
':Varenummer'=> $myArray[11],
':Ordre_nummer' => $myArray[12],
':Operatoer'=> $myArray[13],
':Maskine_nr'=> $myArray[14],
':Raavare_batch_nr'=> $myArray[15],
':Dato_ur_stillet'=> $myArray[16],
':Klokke_fuldsvejst'=> $myArray[17],
':Fuldstoebning_af_klokke'=> $myArray[18],
':Afgratning_af_overflade'=> $myArray[19],
':Vaegt'=> $myArray[20]
]
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.