Ich habe 2 Funktion, insertInto
für das Einfügen von Daten von einem Array in einer Mysql-Datenbank, und checkRow
, wo ich überprüfen, ob die aktuelle Zeile von meinem Array bereits existiert. Die Struktur des Arrays tableArray
ist $ tableArray ["Tabelle2"] [Nummer der Zeile] [Anzahl der Spalten]. Wenn ich jedoch die Seite aktualisiere, fügt sie immer mehr Zeilen in die Datenbank ein und vermeidet es, zu überprüfen, ob die Zeile bereits existiert.endlos für Schleife beim Aufruf einer Funktion
die Funktion 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 />";}
}
die Funktion 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);
}
}
}
}
die Schleife, wo I die Funktion checkRow nennen:
for($g = 1; $g <= count($tableArray["Tabelle2"]); $g++){
checkRow($g, $tableArray, $conn);
}