Ixam: Tabelle - Datenbank - PHP ---> Tabelle sortieren ?

Hallo alle zusammen,

also ich habe das folgende Anliegen:
Ich möchte gerne eine Tabelle mit Links erstellen welche dann vom User nach Alpabet oder beispielsweise Postleitzahl sortiert werden kann.

Es soll also eine Tabelle sein, bei der der User entscheiden kann nach welcher Spalte sich die Einträge sortieren. Also ob nach Postleitzahl, Name usw...

Ich glaube das ganze könnte man auch interaktive Tabelle nennen ;-)

Ich habe im Internet dazu auch schon gesucht und hab gelesen, dass wenn man das ganze mit Javascript verwirklich die Sortierzeit teilweise sehr lange (bis zu 30 Sek) sein kann...und dass man daher bei größeren Tabellen auf eine Datenbank zurückgreifen sollte.
Leider habe ich keinen Plan von Datenbanken (MySQL) und auch mit PHP kann ich nicht allzu viel anfangen.... =(

Kennt vielleicht jemand ein Tutorial im Internet, oder gar ein fertiges Script das es ermöglich eine solche Tabelle zu erstellen?

Fände es klasse wenn mir da jemand weiterhelfen könnte.

DANKE schon mal im Voraus für eure Antworten,
greez,
-Ixam

  1. Hello,

    Fände es klasse wenn mir da jemand weiterhelfen könnte.

    Fang einfach vorne an.

    bau Dir ein Array mit Daten, ähnlich dem folgenen:

    $_data[1] = 'Hans im Glück';
      $_data[2] = 'Die goldene Gans';
      $_data[3] = 'Schneeweißchen und Rosenrot';
      $_data[4] = 'Kleiner Mann, was nun?';
      $_data[5] = 'Angeln ohne Würmer';
      $_data[6] = 'XXX - Zangengeburt der Programmierung';

    und versuche die Daten und die laufenden Nummern in einer Tabelle auszugeben.

    Wenn das klappt, dann kannst Du die Tabelle auch durch Button-Überschriftren ergänzen über den Spalten

    <input type="submit" name="btn[nr_asc]" value="Nr&darr;">
      <input type="submit" name="btn[nr_desc]" value="Nr&uarr;">

    <input type="submit" name="btn[title_asc]" value="Titel &darr;">
      <input type="submit" name="btn[title_desc]" value="Titel &uarr;">

    und diese Buttons abfragen im Script

    Zum Ansehen, welcher gedrückt wurde:

    echo "<pre>\n>";
       print_r($_POST);
       echo "</pre>\n>";

    je nachdem, welcher gedrückt wurde, kannst Du das Array dann nach Schlüssel mit ksort() http://de.php.net/manual/de/function.ksort.php oder nach den Werten z.B. mit natsort() http://de.php.net/manual/de/function.natsort.php sortieren lassen, bevor Du die Tabelle wieder ausgeben lässt.

    Du benötigst also verschiedene Funktionen:

    array   Daten holen( woherhauchimmer )        Funktion liefert ein Datenarray
    string  Tabelle erzeugen ( array )            Funktion liefert den HTML-String mit der Tabelle
                                                  und übernimmt dafür die Daten in einem Array

    num     get_btn( $_POST )                     stellt aus den Postdaten fest. ob und welcher
                                                  button gedrückt wurde und liefert dessen Namen,
                                                  eine Nummer oder den Funktionsnamen, der dann
                                                  ausgeführt werden soll...

    Aus diesen Bausteinen bekommst Du es bestimmt hin.

    Es ist ein Unterschied, ob der gesamte Datenbestand sortiert ausgegeben werden soll oder nur die angezigte Ausschnittsmenge.
    Den gesamten Bestand sortierst Du natülich besser mit den Datenbankfunktionen deines benutzten DBMS.

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Hallo Ixam,

    Ich möchte gerne eine Tabelle mit Links erstellen welche dann vom User nach
    Alpabet oder beispielsweise Postleitzahl sortiert werden kann.

    okay,
    nun musst Du entscheiden,
    ob der User nur die aktuelle Anzeige sortiert bekommt, das geht mit JavaScript,
    oder ob das komplette Suchergebnis neu sortiert werden soll, was eine Aenderung
    des SQL-Querys erfordert.

    Gruss Norbert

  3. Hallo,

    Ich habe im Internet dazu auch schon gesucht und hab gelesen, dass wenn man das ganze mit Javascript verwirklich die Sortierzeit teilweise sehr lange (bis zu 30 Sek) sein kann...und dass man daher bei größeren Tabellen auf eine Datenbank zurückgreifen sollte.

    Also ich find das gar nicht so langsam: TableKit oder hier TableSort

    Ob deine "größeren Tabellen" allerdings zu groß sind, musst du selbst entscheiden.

    Gruß,
    Leeloo

    --
    "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
  4. Hallo Ixam,

    Ich habe im Internet dazu auch schon gesucht und hab gelesen, dass wenn man das ganze mit Javascript verwirklich die Sortierzeit teilweise sehr lange (bis zu 30 Sek) sein kann...und dass man daher bei größeren Tabellen auf eine Datenbank zurückgreifen sollte.

    das hängt von der Größe der Tabelle ab. Mein Javascript-Tabellensortierer kommt z.B. auf der Seite http://www.uni-muenster.de/Physik.AP/Buecher-de.html zum Einsatz. Die Sortierzeit bei fast 3000 Zeilen beträgt ca. 20 s auf einem neuen Rechner mit 6400er CPU.

    Gruß, Jürgen