Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Textdatenbank zeilenweise alphabetisch sortieren - Drop Down Menü alphabet

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Textdatenbank zeilenweise alphabetisch sortieren - Drop Down Menü alphabet

    Hallo, habe ein Skript, das mir aus der Text-Datenbank ein Drop Down Menü gestaltet:

    PHP-Code:
    <form action="uebung3.php" method="post">
    <select name="vorname" onChange="this.form.submit();">
    <option>Auswahl</option>
    <?php
    $variable 
    file("uebung.txt");  
    $suche = array();
    foreach (
    $variable as $zeile
    {
    $term explode("|"$zeile);
    array_push ($suche$term[0],$term[1],$term[2]); 
    echo 
    "<option>"$term[0] ."</option>";
    }
    ?>
    Es macht noch etwas mehr, aber mir geht es jetzt um das Drop Down Menü.

    Denn wenn ich diese Text-Datenbank dahinter habe, was wahrscheinlich bei allen Text-Datenbanken ähnlich sein wird:

    Code:
    Maik|HoenXXX|03042
    Kerstin|LaXXX|03050
    Heinz|KoXXXt|03096
    Udo|RotXXXel|03050
    Frank|ScXXXer|99338
    Steffi|KoXXXt|25332
    Marlies|HoXXXke|03044
    Jörg|SaXXXXni|03053
    Marcel|SaXXXni|03053
    Thomas|ZiXXXl|99410
    Dann ergibt dies das Drop Down Menü wie auf dem Bild, das ich angehangen habe - bei wenigen Einträgen scheint mir dies noch übersichtlich - aber spätestens wenn der Bildschirm nicht mehr ausreicht, alle Einträge darzustellen, wird sich wohl kaum noch einer zurechtfinden, wenn dies nicht alphabetisch sortiert ist.

    Gibt es da jetzt einen Weg, das ausgegebene Drop Down Menü zu sortieren oder ist es eher empfehlenswert, die angehangene Textdatenbank vor dem Auslesen zu sortieren?

    Ich müsste dann die Zeilen nach dem jeweiligen Anfangsbuchstaben sortiert bekommen.

    Welche Lösung wäre hier eher zu empfehlen - das Menü selbst zu sortieren oder erst die Datenbank zu sortieren?

    Welchen Befehl würdet Ihr mir da vorschlagen, sollte ich zu diesem Zweck einsetzen - ich möchte regelmäßig kein Skript erstellt haben, obwohl ich dies auch gern nehme, wenn ich es durchschauen kann - so mir jemand in etwa die notwendigen Arbeitsschritte beschreiben oder wieder mal einen kleinen Denkanstoß in die richtige Richtung geben kann, bedanke ich mich schon sehr dafür.

    Möglicherweise, wenn ich nicht erst die Textdatenbank sortieren lassen möchte, da ich ja nicht weiß, wielange dies dauern kann, dachte ich mir, eventuell alle hier

    PHP-Code:
    $term[0
    in einen Array zu überführen, diesen Array alphabetisch von vorn nach hinten durchsortieren zu lassen und dann wieder aufgesplittet als Option in das Menü einzufügen - geht das?

    Wie geht es eventuell einfacher oder besser, was wäre die elegantere Lösung?

    Schonmal vielen Dank für Eure Unterstützung.

    So, habe jetzt dieses Skript eingesetzt:

    PHP-Code:
    <?php
    $variable 
    file("uebung.txt");  
    $uebertrag = array();
    foreach (
    $variable as $zeile

    array_push ($uebertrag$zeile);
    }
    asort ($uebertrag);
    $uebungdatei fopen ("uebung.txt","w+");
    foreach (
    $uebertrag as $mein_uebertrag)
    {
    $eintrag ="$mein_uebertrag";
    fwrite($uebungdatei"$eintrag");
    }
    fclose($uebungdatei);
    ?>
    vielleicht ist ja wieder was zuviel dabei - noch fehlt das flock als zusätzliche Sicherheit - jedoch reine Formsache - das Skript jedenfalls funktioniert und sortiert mir zunächst mal die Datenbank anhand des ersten Eintrages je Zeile durch - ob man dieses Skript jetzt dem anderen voranstellen sollte, damit jedesmal bevor das Drop Down Menü erstellt wird, die Datenbank auch wirklich sortiert ist, weiss ich noch nicht genau - halte es jedoch für empfehlenswert - da man, wenn man nicht als einziger Änderungen vornehmen kann, das Drop Down Menü ständig für eine Überraschung gut sein kann.

    Hah, dusslig bin ich auch noch, wenn ich die ganzen Zeilen in den Array einlesen, dann sortieren, ausgeben und wieder in die Datei schreiben kann, damit das Drop Down Menü dann stimmt, dann frage ich mich freilich, warum ich nicht gleich die selektierten ersten Einträge aus jeder Zeile in ein Array einlesen, das sortieren und dann in das Menü einfügen lasse - na, schaumer mal - jedenfalls müsste dann jedenfalls nicht jedesmal die Datei neu geschrieben werden, nur weil mal einer eine Abfrage machen will.
    Angehängte Dateien

  • #2
    Sortier deine $variable einfach mit [MAN]usort[/MAN] oder schreib dir eine vernünftige Schnittstelle zur Datenbank. Generell gilt, Textdatenbanken sind für so etwas ungeeignet. Wenn du kein MySQL nutzen willst schau dir doch mal SQLite an.
    [IMG]http://media.ubuntuusers.de/portal/files/ubuntu.png[/IMG][IMG]http://sqlmanager.net/i/ico/mysql.gif[/IMG][SIGPIC][/SIGPIC]

    Kommentar

    Lädt...
    X