PHP Problem mit Script. Hilfe!

  • Hallo Leute,


    vielleicht könnt Ihr mir ja mit meinem PHP Script helfen. Es soll eigentlich Konzertdaten für eine Band verwalten, aber ich bekomm es einfach nicht hin, das das Script die Daten automatisch nach Datum sortiert. Ansonsten läuft es ja... Hat jemand von euch den passenden Befehl? Kenn mich leider nicht so aus mit PHP...


    Hier das Script :




    Gibt es da einen Befehl? gruß Manuel

  • In welcher Form liegt denn das Datum vor? Wenn als Tag.Monat.Jahr wird das Sortieren schwierig, da dabei ja zuerst das Jahr beachtet werden sollte... am Besten wäre es wohl als Linux-Timestamp, den du dann in dem Moment, in dem du die Datei schreibst, mit date () in ein lesbares Format umwandelst. Die verschiedenen Sortierfunktionen für Arrays findest du bei sort () unter "siehe auch", ich weiß aber nicht, ob da was dabei ist, mit dem man mehrere Arrays (oder ein zweidimensionales Array) anhand der Elemente in einem Teil sortieren kann -- es bringt dir ja wenig, wenn das Datum sortiert ist aber die restlichen Daten in der ursprünglichen Reihenfolge bleiben. Schätzungsweise (ich hab mir aber nicht alles durchgelesen, vielleicht findest du ja doch was) musst du selber einen Sortieralgorithmus implementieren, wobei die Zahlen 1 - 4 in die Reihenfolge der von datum[i] gebracht werden (wobei datum[i] Timestamps speichert und kein Datum im Klartext); danach könntest du mit einer Schleife von 1 - 4 die Daten in eine Datei schreiben (warum öffnest und schließt du die eigentlich dauernd?) :) Wo kommen denn die ganzen Daten her, die du da reinschreibst?


    Vielleicht hilft dir das ja schon, sonst frag halt nochmal ;)

  • Als Anmerkung vielleicht noch:


    Wenn die Daten aus einer Datenbank kommen (beispielsweise mySQL) dann sortier sie da schon mit einer ORDER BY-Klausel.
    Desweiteren würde mich interessieren warum du über eine PHP-Datei nach diesem Schema erstellst?! Was genau soll denn passieren?

    -> Tristan @ Work <-
    --

  • Hmm, wie gesagt bin ich absolter Newbie in PHP. War mein erstes Programm in PHP. Das Datum wird in einem Feld eingegeben.. Also 23. Januar 2004 zum Beispiel. Kann ich das Datum irgendwie mit einem Befehl in PHP in dieses date() umwandeln?


    Ich mein, das der Benutzer das Datum in einem Feld eingibt, PHP das dann in date() umwandelt unddieses dann in einem unsichbaren Array speichert?


    Ist glaub ich sehr kompliziert ausgedrückt. Ich versuch das am Besten noch einmal... Trotzdem erstmal Danke :top:

  • Um den Timestamp zu berechnen musst du Tag, Monat und Jahr als drei getrennte Zahlen einlesen und über mktime () umwaldeln. In dieser Form lässt es sich auf jeden Fall am Einfachsten sortieren, müsste dann nach diesem Schema funktionieren (hoffe ich... hab schon lang kein PHP mehr geschrieben, in Ada95 wär ich mir jetzt sicherer :D Also falls du zufällig noch wissen willst, was die 500000ste Primzahl ist oder so, damit durfte ich mich gerade beschäftigen ;)):



    ($min gibt dabei jeweils den Index des frühesten nicht einsortierten Datums an -- sollte es wenigstens ;))


    Zum bisherigen Programm: Es reicht vollkommen wenn du die Datei einmal am Anfang öffnest und am Ende wieder schließt; auch das <?php und das ?> müssen nur einmal am Anfang bzw. am Ende vorkommen.


    Du schreibst in die Datei ja nur Wertzuweisungen rein -- versteh ich das richtig, dass die gigs.php dann von einer anderen Datei mittels include eingebunden wird und die Werte dort weiter verarbeitet werden? Weil sonst macht das für mich irgendwie keinen Sinn ;) Oder wie funktioniert das?

  • oder verwende eine mysql Datenbank,in die kannst du dann alles in einzelne Spalten schreiben, und das Timestamp speichern.
    Beim auslesen schreibst du select * from db ORDER by Date in deine Query abfrage, dann liegen alle Daten in einem nach Datum sortierten Array vor.
    Auslesn kannst du dieses beipsielsweise durch foreach


    Bye Ls4

    Wär Rächtsräibphähler phindet darf sich phreuen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!