【发布时间】:2016-05-31 07:53:26
【问题描述】:
我有 2 个函数,insertInto 用于在 Mysql 数据库中插入来自 ma 数组的数据,checkRow 用于检查我的数组中的当前行是否已经存在。数组tableArray 的结构是$tableArray["Tabelle2"][行数][列数]。但是,总是当我刷新页面时,它会在数据库中插入更多行并避免检查该行是否已经存在。
函数 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);
}
}
}
}
我调用函数 checkRow 的循环:
for($g = 1; $g <= count($tableArray["Tabelle2"]); $g++){
checkRow($g, $tableArray, $conn);
}
【问题讨论】: