Forum indem der neuste Beitrag automatich nach oben wandert...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Forum indem der neuste Beitrag automatich nach oben wandert...

    Hey!

    Ich habe ein Forum geschrieben, in dem man aus einer Textdatei die Einträge (durch Arrays und Zeilen getrennt) liest.
    Nun ist die startseite des Forums in dem die Themen stehen aber noch Statisch. Jedes Thema bleibt auf seiner Posotion.
    Ich möchte irgendwie hinbekommen, dass das Thema wo ein neuer Beitrag zu geschrieben wurde automatisch nach oben plaziert wird, so das jeder sofort sehen kann, wo ein neuer Beitrag geschrieben wurde...

    Ich könnte mir vorstellen, dass man nach Zeit sortiert. Die Zeit und das Datum werden bei jedem Beitrag in der Textdatei mitgespeichert.
    Ich könnte vielleicht jeweils das aktuellste Datum innerhalb eines Themas rausfiltern, es dann auf der Startseite ausgeben, und dann dort die Themen nach dem Datum + Uhrzeit sortieren.

    Aber dafür fehlen mir die Befehle und Möglichkeiten.
    Ich weiß nur wie ich eine Zeile der Textdatei, die durch das Zeichen | unterteilt wurde, um mehrere Informationen aus einer zeile zu lesen, mit der array funktion auslesen kann, aber wenn ich nun z.B. 3 Zeilen habe:
    • |01.02.2004|Willi Müller|Dies ist mein Text|
      |05.05.2004|Hans Geisendörfer|Ich bin ein StarOffice freak|
      |04.05.2004|Peter Gerdes|Geisendörfer ist doof|

    wie kann ich anschließend sagen, ich möchte nur die 2te zeile mit nem array auslesen, weil diese z.B. das aktuellste Datum hat?

    Und wenn das irgendwie machbar ist, wie kann ich einerTabelle in html, in der ich in einer Zelle einer Zeile das Datum ausgebe, sortieren, so das immer das Thema mit dem aktuellsten Beitrag oben steht?

    Bitte um hilfe
    Danke im Voraus!

    MFG Israel's Son

  • #2
    Im prinzip musst du alle beiträge erst mal in ein array lesen und dieses dann sortieren...

    glaube mit usort


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

    Kommentar


    • #3
      ich denk mal es wär einfacher wenn du das ganze mit einer Datenbank löst. Im Prinzip baust du ja schon eine Tabelle auf, nur halt eben in einer txt file.

      Kommentar


      • #4
        nur halt eben in einer txt file
        Und ein Txt-File ist in deinen Augen keine Datenbank?

        Kommentar


        • #5
          Doch, aber eine SQL-Datenbank ist:

          a) schneller
          b) komfortabler handlebar.

          Das muss ich dir aber nicht sagen .

          @israelsson:
          Speichere in der Textdatei die Daten als TIMESTAMP und sortier die dann ganz "normal" mit sort()...

          €dit: bzw. mit rsort()

          Gruß,
          Christian

          Kommentar


          • #6
            @harakiri: Aber flix den Reflink aus deiner Sig!

            Kommentar


            • #7
              Hab vorher überall im Forum gesucht und nichts gefunden, dass sowas "verbietet"... überhaupt habe ich hier noch keine Regeln gefunden *duck*.

              (ich hab natürlich die Signatur geändert mittlerweile ... kann allerdings nur auf Sachen Rücksicht nehmen, die mir bekannt sind ...)

              Kommentar


              • #8
                deswegen wurdest du darauf hingewiesen

                Kommentar


                • #9
                  ja danke erstmal, aber ich hab immer noch das Problem, wie ich aus der Textdatei, die ich als Datenbank nutze, einen bestimmten Teil rausfilter...

                  also meine Textdatei besteht z.B. wie schon vorher genannt aus diesen Datensätzen:
                  • |01.02.2004|Willi Müller|Dies ist mein Text|
                    |05.05.2004|Hans Geisendörfer|Ich bin ein StarOffice freak|
                    |04.05.2004|Peter Gerdes|Geisendörfer ist doof|

                  Nun möchte ich diese Datenbank irgendwie aussortieren, so das ich in einer Seite anschließend NUR die Zeile, in der das neuste (aktuellste) Datum steht, habe.

                  Kann mir jemand ein kleines script schreiben, mit dem ich aus der Datenbank, die ich nun einfach mal "datenbank.txt" nenne, den Datensatz mit dem aktuellsten Datensatz auslesen kann?

                  Das soll dann so aussehen das ich einfach am Ende das Datum des entsprechenden Datensatzes mit einem Array oder so auslesen kann...

                  in dem html dokument müsste nun also irgendwie das Datum 05.05.2004 erscheinen, und falls ein neuerer Datensatz hinzugefügt wird, das Datum des neueren...

                  Wäre sehr dankbar für jede Hilfe!

                  MFG Israel's Son
                  Zuletzt geändert von israelsson; 10.10.2004, 00:42.

                  Kommentar


                  • #10
                    Nun möchte ich diese Datenbank irgendwie aussortieren, so das ich in einer Seite anschließend NUR die Zeile, in der das neuste (aktuellste) Datum steht, habe.
                    Nun, wenn du sortieren kannst, sollte es für dich ein leichtes sein, nur den ersten eintrag des entstandenen arrays zu nutzen, oder nicht?

                    Allerdings fehlt mir der Code in diesem Posting.

                    Aber das ganze wird absolut unperformant, wenn das ganze nur dazu dienen soll das datum des letzten eintrags zu zeigen,

                    speicher liebeer bei jedem neuen posting das datum in eine extra-datei.

                    Kommentar


                    • #11
                      Trägt er die Daten in die Textdatei nicht chronologisch ein? Also immer nach Zeit?

                      Dann wäre doch der letzte Eintrag der aktuellste?!

                      Also einfach die Daten immer hintereinander speichern... dann ist der erste Eintrag der Älteste und der letzte der Neueste...

                      Gruß,
                      Chris

                      Kommentar


                      • #12
                        Danke schön erstmal!

                        mir fehlt einfach nur der Befehl um von mir aus auch immer den letzten Datensatz auszulesen!

                        Nennt mir doch den Befehl mit dem ich nicht zwischen Arrays wie z.B. ein | oder , auslese - ich brauche einen Befehl um aus 5 Zeilen eine Bestimmte auszulesen...
                        • datenbank.txt

                          |01.02.2004|Willi Müller|Dies ist mein Text|
                          |05.05.2004|Hans Geisendörfer|Ich bin ein StarOffice freak|
                          |04.05.2004|Peter Gerdes|Geisendörfer ist doof|


                        PHP-Code:
                        // ### auslesen.php ###
                        <?php
                        $datei
                        ="datenbank.txt";
                        $zeiger=fopen($datei,"r");
                        $x=fread($zeiger,filesize($datei));
                        fclose($zeiger);
                        // String zerlegen, Array entsteht
                        $x=explode("|",$x);
                        ?>
                        hier mit hab kann ich ja, wenn in dem Datensatz das Datum an erster Stelle steht, das Datum auslesen mit:
                        PHP-Code:
                        echo $x[1]; 
                        Nur jetzt wird mir das Datum aller drei Zeilen ausgegeben! Ich möchte dies aber auf das neuste verringern...

                        MFG Israel's Son

                        Kommentar


                        • #13
                          Original geschrieben von israelsson
                          mir fehlt einfach nur der Befehl um von mir aus auch immer den letzten Datensatz auszulesen!
                          Lese mit file ein, damit hast du den Vorteil, daß du die Zeilen als Array vorliegen hast, und das letzte Element ist dann dein neuester Eintrag
                          PHP-Code:
                          $data file(...)
                          $last_entry explode('|',$data[count($data)-1]);
                          $last_date last_entry[1]; 

                          Kommentar


                          • #14
                            Ja danke!

                            Sorry aber bin nicht ganz so durchgestiegen, soll ich die Datenbank mit file auslesen oder was soll in die Klammer (...) von dir?


                            Wir kann ich die beiden Scripts, von mir und dir kombinieren, so dass ich das Ergebnis erhalte, nur das letzte Datum zu haben?

                            Denn die Datenbank besteht nicht nur aus dem Datum sondern auch aus anderen Daten die mit | getrennt sind...

                            MFG Israel's Son
                            Zuletzt geändert von israelsson; 15.10.2004, 10:32.

                            Kommentar


                            • #15
                              Original geschrieben von israelsson
                              Ja danke!
                              Bitte, bitte
                              Sorry aber bin nicht ganz so durchgestiegen, soll ich die Datenbank mit file auslesen oder was soll in die Klammer (...) von dir?
                              Link klicken und schlau werden
                              Wir kann ich die beiden Scripts, von mir und dir kombinieren, so dass ich das Ergebnis erhalte, nur das letzte Datum zu haben?
                              wenn du das Stückcode oben meinst, dann voll ersetzen.
                              Denn die Datenbank besteht nicht nur aus dem Datum sondern auch aus anderen Daten die mit | getrennt sind...
                              lese dir die Syntax von file durch, dann weißt du was du in $data hast.

                              Kommentar

                              Lädt...
                              X