1
私は2つの関数、Mysqlデータベースのma配列からデータを挿入するためのinsertInto
、配列内の現在の行がすでに存在するかどうかを確認するcheckRow
があります。配列tableArray
の構造は$ tableArray ["Tabelle2"] [行の数] [列の数]です。ただし、常にページを更新すると、データベースにさらに多くの行が挿入され、行がすでに存在するかどうかを確認する必要はありません。関数を呼び出すときに無限ループforループ
機能 insertInto:
function insertInto($i, $tableArray, $conn){ //insert into db
$dateFormated = split('/', $tableArray["Tabelle2"][$i][3]);
$date = $dateFormated[2].'-'.$dateFormated[0].'-'.$dateFormated[1];
$insertInto = "insert into Excel(Arbeitsplatz, Auftragsart, Auftragsnummer, Datum, Tageszeit, Erklaerung, Beschreibung, AG, StdArt, Anwender)
values('".$tableArray["Tabelle2"][$i][0]."', '".$tableArray["Tabelle2"][$i][1]."', '".$tableArray["Tabelle2"][$i][2]."', '".$date."',
'".$tableArray["Tabelle2"][$i][4]."', '".$tableArray["Tabelle2"][$i][5]."', '".$tableArray["Tabelle2"][$i][6]."',
'".$tableArray["Tabelle2"][$i][7]."', '".$tableArray["Tabelle2"][$i][8]."', '".$tableArray["Tabelle2"][$i][9]."')";
if($conn->query($insertInto) === true){echo "Datensatz Nr. ".$i." wurde eingefuegt.<br />";}else{echo "Datensatz Nr. ".$i." wurde nicht eingefuegt.<br />";}
}
機能checkRow:
function checkRow($i, $tableArray, $conn){ //if(... == ...)
$count = "select count(*) from Excel;";
$res = $conn->query($count);
$row = $res->fetch_assoc();
$rowsNum = $row["count(*)"];
if($rowsNum == 0){
insertInto($i, $tableArray, $conn);
} else {
for($b = 1; $b <= $rowsNum; $b++){
$select = "select * from Excel where ExcelID = '".$b."'";
$result = $conn->query($select);
$row = $result->fetch_assoc();
if($tableArray["Tabelle2"][$i][0] == $row["Arbeitsplatz"] && $tableArray["Tabelle2"][$i][1] == $row["Auftragsart"] && $tableArray["Tabelle2"][$i][2] == $row["Auftragsnummer"] && $tableArray["Tabelle2"][$i][4] == $row["Tageszeit"] && $tableArray["Tabelle2"][$i][5] == $row["Erklaerung"] && $tableArray["Tabelle2"][$i][6] == $row["Beschreibung"] && $tableArray["Tabelle2"][$i][7] == $row["AG"] && $tableArray["Tabelle2"][$i][8] == $row["StdArt"] && $tableArray["Tabelle2"][$i][9] == $row["Anwender"]){
echo "Datensatz ist bereits vorhanden.<br />";
} else {
insertInto($i, $tableArray, $conn);
}
}
}
}
Iが関数checkRow呼び出しループ:
for($g = 1; $g <= count($tableArray["Tabelle2"]); $g++){
checkRow($g, $tableArray, $conn);
}