azok: datensätze "gruppiert" ausgeben

hi!

ich habe heute mal ein programmiertechnisches problem, auf das ich keine antwort weiß, um diesen teil des (wie zu erwartenden) weblogs zu programmieren [scripten]. - nun, es handelt sich um eine funktion zum löschen von kommentaren. diese funktioniert einwandfrei, leider ist die ausgabe sehr unübersichtlich, da die datei mit den kommentaren einfach nur über eine for-schleife etc. von oben nach unten ausgelesen wird. damit nun der weblogadministrator das zu löschende kommentar auf anhieb finden kann, habe ich mir gedacht, ich möchte die kommentare gruppiert ausgeben. vorweg, die kommentare werden jeweils so abgespeichert:

news_[fortlaufende nummer]@uniqid|name|email|überschrift|text|datum|uhrzeit|ip\n

die ausgabe erfolgt zurzeit leider etwas kreuz und quer (lediglich nach datum sortiert [zeitpunkt des speicherns]). ich hätte nun gerne, dass diese ungefähr so ausgegeben werden:

Kommentare zum Hauptbeitrag news_x:
--------------------------------------------------
[Kommentare]
--------------------------------------------------
Kommentare zum Hauptbeitrag news_y:
--------------------------------------------------
[Kommentare]
--------------------------------------------------

etc. (formatierung überlege ich mir noch...) - mir geht es nun um die programmiertechnik soetwas zu realisieren... - habe zzt leider davon noch nicht wirklich irgendeinen plan, nur irgendetwas im hinterkopf sagt mir, dass es sich dabei um verschachtelte schleifen handeln muss...

wäre für hilfe dankbar

lg
azok

--
Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:( n4:° ss:| de:] js:| ch:( sh:) mo:) zu:)
  1. Hallo,

    die kommentare werden jeweils so abgespeichert:

    news_[fortlaufende nummer]@uniqid|name|email|überschrift|text|datum|uhrzeit|ip\n

    ich hätte nun gerne, dass diese ungefähr so ausgegeben werden:

    Kommentare zum Hauptbeitrag news_x:

    [Kommentare]

    Kommentare zum Hauptbeitrag news_y:

    [Kommentare]

    Die Einträge stehen als Zeilen in der reihenfolge ihres Auftretens in einer Textdatei, nehme ich an. Mit einer Datenbank könntest Du ja beliebig sortieren.

    Die Textdatei kannst Du zeilenweise in eine zusätzliche Speichereinheit (ein Array oder eine Collection von Objects) einlesen. Diese Speichereinheit sortierst Du dann, wie gewünscht, und erzeugst die Ausgabe aus dieser sortierten Speichereinheit.

    Schon bei einem einfachen Array wäre eine Sorterung nach news_[x] ja kein Problem, weil das ja am Beginn jedes Eintrags steht.

    Wenn Du speziellere Sortierungen wünschst, müsstest Du multidimensionale Arrays, also Arrays mit Arrays als Elemente, benutzen. Bsp.: Das Hauptarray enthält als Elemente Arrays mit dem Aufbau:
    array ("news_x", "uniqid", "name", "email", "überschrift", "text", "datum", "uhrzeit", "ip")

    also:

    $beitrag = array(array ("news_x", "uniqid1", "name1", "email1", "überschrift1", "text1", "datum1", "uhrzeit1", "ip1"), array ("news_y", "uniqid2", "name2", "email2", "überschrift2", "text2", "datum2", "uhrzeit2", "ip2"), ...)

    $beitrag[0][2] wäre dann z.B. "name1".

    Je nach zur Verfügung stehender Programmiersprache kannst Du auch mit assozativen Arrays oder Collections of Objects arbeiten:
    $beitrag[0]["news_lfn"] = "news_x";
    $beitrag[0]["uniqid"] = "uniqid1";
    $beitrag[0]["name"] = "name1";
    ...
    $beitrag[1]["news_lfn"] = "news_y";
    $beitrag[1]["uniqid"] = "uniqid2";
    $beitrag[1]["name"] = "name2";
    ...

    Wie man soetwas dann sortiert, hängt auch wieder von der verwendeten Programmiersprache ab.

    Als weitere Möglichkeit gäbe es das Speichern in einem Random Access File mit zusätzlichem Anlegen von Index-Dateien. Die Index-Dateien speichern dabei, entsprechend vorsortiert, die Dateizeiger-Positionen der Datensätze, welche im Random Access File dann bei der Ausgabe gezielt angesprungen werden könnten. Man spart dadurch das zusätzliche Speicherkonstrukt (Array...) im Arbeitsspeicher, muss allerdings den größeren Speicherbedarf des Random Access Files und den zusätzlichen Aufwand der Verwaltung der Index-Dateien in Kauf nehmen.

    viele Grüße

    Axel