• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

neue Einträge markieren

asterix22

Mitglied
Hallo zusammen
Nachdem ihr mir so rasch geholfen habt, gleich nochmals eine Frage:
Ich möchte Einträge, die neu in einer Tabelle erscheinen (von einem csv-File importiert) farbig markieren. Ich denke aber, ohne Datenbank (wo man einen dazugehörigem Timestamp genierieren könnte) ist das schlicht nicht möglich.
Oder täusche ich mich, gibt es trotzdem eine Lösung?
Vielen Dank!
 
Werbung:
Die Daten der Tabelle stammen aus einer CSV-Datei? Oder importierst Du die CSV-Datei in eine MySQL-Datenbanktabelle?
 
Werbung:
Es ginge schon, wenn Du in der CSV-Datei ein Merkmal für "neuer Datensatz" hinterlegst. Wenn das nicht vorhanden ist, dann geht es nicht. Die Frage wäre eher womit Du die CSV-Datei erstellst und wie sie verwaltet wird. Abhängig davon kann man sich dann auch eine Lösung für deine Frage überlegen.
 
Werbung:
naja, man muss ja immer die csv importieren wenn es neue Einträge gibt, du könntest in deinem script immer den timestamp generieren wenn du die csv importierst, und wenn der timestamp höher ist als der letzte timestamp vom letzten import wären es neue Daten.

Es kommt natürlich auch etwas auf die Beschaffenheit der CSV Datei an, ist es immer eine neue, oder erstellst du in der csv immer neue Einträge. Man könnte auch beim import kontrollieren ob es diesen Datensatz schon gibt, wenn nicht ist der neu. Also es würde schon einiges gehen.
 
Das Problem ist, dass das csv von einem anderen User aus einer DB kommt. Es werden z.T. nur einzelne Felder eines Datensatzes gefüllt. Man müsste also beim Import kontrollieren, ob ein Feld neu dazu kam. Ginge das?
 
Ja. Speichere bei jedem Ladevorgang oder zu bestimmten Zeitpunkten eine Kopie der CSV-Datei und vergleiche davor die vorliegende Kopie mit der neuen Datei.
 
Werbung:
Womit liest Du denn aktuell die CSV-Datei ein? Genau damit kannst Du auch dann die Inhalte (bzw. Spalten-Anzahl, falls das schon ausreicht) vergleichen.
 
Es sieht so aus. Ich müsste aber einzelne Felder vergleichen, nicht die Spalten-Anzahl. Es wird in einzelne Felder reingeschrieben. Wie könnte ich das nun vergleichen?

PHP:
if (($handle = fopen("daten.csv", "r")) !== FALSE) {
        fgets($handle);     // Erste Zeile überlesen
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
          {
        $rows[] = $data;
    }
                fclose($handle);
 
Werbung:
Gehe mit o.g. Funktion durch beide Dateien (alt und neu), Speichere die Daten der Dateien jeweils in eigenen Arrays (also $rows_alt und $rows_neu) und vergleiche dann diese Arrays in einer weiteren Schleife.
 
PHP:
if (($handle = fopen("daten.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
          {
        $rows[] = $data;
    }
                fclose($handle);
}
if (($handle2 = fopen("daten-1.csv", "r")) !== FALSE) {
    while (($data2 = fgetcsv($handle2, 1000, ",")) !== FALSE)
          {
        $rows2[] = $data2;
    }
                fclose($handle2);
}
also so?
Und dann irgendwie
PHP:
foreach ($handle as $key) { was käme hier? }
und foreach $handle2 as $key2

dann if ($key!=$key2)
aber wie kann ich da die Variable übergeben die dann farbig werden soll in der Ausgabe?
 
Zurück
Oben