Ich habe hier ein seltsames Phänomen, das ich mir nicht erklären kann.
Vielleicht hat einer von euch eine Idee:
Ich habe eine Reihe von Einträgen (so knapp 10.000) in einer Mysql-Tabelle.
Diese werden täglich mit Einträgen aus einer ASCII-Datei verglichen.
Ist dieser Eintrag sowohl in der DB wie auch in der ASCII-Datei vorhanden, passiert nix.
Ist der Eintrag nur in der ASCII-Datei vorhanden, passiert nix.
Ist der Eintrag in der DB vorhanden, nicht aber in der ASCII-Datei, wir ein Flag gesetzt (char Feld von 1 auf 0)
Etwas vereinfacht dargestellt, aber so läuft's im Großen und Ganzen ab.
Zur Vorgehensweise:
Ich lese die Einträge aus der DB aus und speichere sie in einem Array.
Dann lese ich die ASCII-Datei Zeile für Zeile aus und vergleiche jeden Eintrag mit dem DB-Array (in_array()).
Das Ganze funktioniert auch soweit, ausser, dass ab und zu Einträge ignoriert werden, d.h. der Eintrag existiert z.B. in der DB, nicht aber in der ASCII-Datei und trotzdem bleibt das Flag auf 1 und wird nicht auf 0 gesetzt.
Das ändert sich auch nicht, wenn ich das Programm mehrfach ausführe. Diese Einträge werden immer ignoriert.
Es ist mir ein Rätsel warum, und warum dann auch konsequent immer die Gleichen. Diese Einträge unterscheiden sich nicht von den anderen, die korrekt abgearbeitet werden.
Vielleicht hat jemand dazu eine Idee.
Vielleicht hat einer von euch eine Idee:
Ich habe eine Reihe von Einträgen (so knapp 10.000) in einer Mysql-Tabelle.
Diese werden täglich mit Einträgen aus einer ASCII-Datei verglichen.
Ist dieser Eintrag sowohl in der DB wie auch in der ASCII-Datei vorhanden, passiert nix.
Ist der Eintrag nur in der ASCII-Datei vorhanden, passiert nix.
Ist der Eintrag in der DB vorhanden, nicht aber in der ASCII-Datei, wir ein Flag gesetzt (char Feld von 1 auf 0)
Etwas vereinfacht dargestellt, aber so läuft's im Großen und Ganzen ab.
Zur Vorgehensweise:
Ich lese die Einträge aus der DB aus und speichere sie in einem Array.
Dann lese ich die ASCII-Datei Zeile für Zeile aus und vergleiche jeden Eintrag mit dem DB-Array (in_array()).
Das Ganze funktioniert auch soweit, ausser, dass ab und zu Einträge ignoriert werden, d.h. der Eintrag existiert z.B. in der DB, nicht aber in der ASCII-Datei und trotzdem bleibt das Flag auf 1 und wird nicht auf 0 gesetzt.
Das ändert sich auch nicht, wenn ich das Programm mehrfach ausführe. Diese Einträge werden immer ignoriert.
Es ist mir ein Rätsel warum, und warum dann auch konsequent immer die Gleichen. Diese Einträge unterscheiden sich nicht von den anderen, die korrekt abgearbeitet werden.
Vielleicht hat jemand dazu eine Idee.
Kommentar