Hilfe für Tabelle sortieren

Hallo,
als Computer-Laie habe ich mich zwischenzeitlich mit htm und css auseinandergesetzt und meine HP gebastelt. Nur wird sie jetzt recht umfangreich. Nun habe ich mit viel… Tipparbeit ein Inhaltsverzeichnis erstellt. Da ich aber dieses gerne aufteilen würde (für jeden Staat eine extra htm Datei), stehe ich vor dem Problem alles nochmals zu tippen.

Hat wer eine Idee, dies etwas einfacher zu realisieren?

Hab zwar schon versucht mich mit PHP und SQL auseinanderzusetzen - verstehe aber nur Bahnhof. (Alles einfach, habe ich schon gehört, beim Erstellen meiner HP mit htm u css, hat nun 2 Jahre gedauert, bis zum jetztigen Ergebnis :oops:)

Freue mich über jeden Tipp, der für einen Nicht-Profi machbar ist. Ach ja, die Datei um die es geht, wäre folgende: Deschner E+B Inhalt A-Z

Mit reinem Html ist es wohl leider so, dass du um die Zipparbeit wohl nicht herum kommen wirst. Ale deine Informationen stehen irgend wo im Html-Quelltext (inkl aller Formatierungen und links). Eventuell könntest du versuchen deine Seiten in einem Wysiwyg Editor zu öffnen und da kann man auch sortieren (was übrigens durch deine Tabellenüberschriften, den Buchstaben, nicht gerade erleichtert wird) oder Word/LibreOffice testweise missbrauchen. Das halte ich aber für eine Krücke, die dir mehr Probleme machen wird als Erfolge.

Wenn du dich entscheiden könntest mit PHP und einer Datenbank zu arbeiten, könnte man solche Aufgaben in Zukunft der Datenbank überlassen. Dazu müsstest du zwar 1 Mal eine Tabelle erzeugen, in der die Daten strukturiert abgelegt werden und einmalig eine entsprechende Abfrage erstellen, aber der Aufwand sollte sich lohnen.
Wenn deine Daten schon irgendwie als Datei (CSV oder Textdatei) zur Verfügung stehen, sollte das kein grosses Problem darstellen. Easy ist das für einen Anfänger nicht gerade, aber mit Hilfe des Forums machbar.

Der Vorteil:
Deine Inhalte werden sicher mit der Zet mehr werden und eventuell möchtest du irgend wann noch eine Unterscheidung nach anderen Kriterien, eine Suche, oder weitere zusätzliche Informationen speichern. Dan ist der Aufwand sehr gering und mit wenigen Handgriffen getan. Sortierungen können dann dynamisch generiert werden, Exporte etc möglich und und und…

Erstmal Danke für die Reaktion.

Easy ist das für einen Anfänger nicht gerade, aber mit Hilfe des Forums machbar

Da hätte ich erstmal dazu folgende Fragen. Müßen für PHP alle Dateien der HP neu geschrieben werden? (Wenn ja, hat sich alles erledigt, da ich das gerade nach einem Computercrash u Defekt der externen Festplatte getan habe)

Da ich der Generation „wie komme ich rein?“ angehöre, Null Ahnung und keine Engl. und Mathe-Kenntnisse habe, kann da das Forum in einem absehbaren Zeitrahmen wirklich helfen?
Nachdem ich schon für htm und css Wochen gebraucht habe, bis die Seite funktionierend stand.

Nein, man muss html-Seiten nicht umschreiben. Was sich ändert sind die Datei-Endungen (z.B. index.html auf index.php) und eventuell der eine oder andere Link von z.B. inhaltsverzeichnis.html auf inhalztsverzeichnis.php. Der Aufwand ist also eher gering.
Je nach Aufbau deiner Webseite muss natürlich dann die eine oder andere Änderung rein, die die Datenbank abfragt und das Ergebnis ausgibt.

Wenn man sich die Arbeit macht, im Forum eine Frage verständlich zu stellen, dann noch betreffenden Code postet, eine Fehlermeldung oder ein Problem dazu schreibt, sehe ich da keine Schwierigkeiten.

Im groben würde das wohl so ablaufen:

A. Datenbank Tabelle erstellen und mit den Inhalten befüllen.
B. Eine PHP-Datei erstellen, in der die Ergebnisse nach deinen Wünschen fertig angezeigt werden.
(also alle Tabellen wie du sie jetzt gearde anzeigst).
C. Etwas Codeänderung an deiner bestehenden Webseite. Alle Tabellen fleigen raus und statt dessen kommt ein include der unter B erstellten Datei rein.

Fertig. A und B sind machbar, ohne dass du am aktuellen Stand irgendwas ändern musst, es bleibt alles so wie es jetzt ist.
C wird dann eine 1/4 stündiuge Arbeit, da du Code aus der bestehenden Seite streichst.

Da es ja nur um das Inhaktsverzeichnis geht sehe ich da einen eher minimalen Aufwand.

Hallo sysop,

habe ich Dich mit meinen kleinen Gehirnzellen richtig verstanden, daß ich nur die Datei index.htm und die Datei inhalt.htm mit der Endung .php versehen muß?

C in so kurzer Zeit machbar ist?

Ich habe mal kurzfristig auf meine HP Dateien hochgeladen, um besser zum Ausdruck zu bringen, was mir so vorschwebte.

Nämlich, daß man von dem Inhaltverzeichnis Deschner E+B Inhalt A-Z auch in ein Verzeichnis sortiert nach Staaten (mit Klick (Zur Suche in den einzelnen Staaten USA - bzw. Provinzen Kanada gehen kann.
Wenn Du Dir das ansehen könntest, wäre wirklich Super.

Tausend Dank für Deine Mühe

Hallo

Zuerst mal, deine Links geben einen Fehler, ist aber nicht so schlimm.

Wenn ich dich richtig verstanden habe, geht es ja nur um die Seite inhalt.htm, die du nach bestimmten Kriterien ausgeben möchtest (Staatenweise, Alphabetisch sortiert , nach einem Suchbegriff etc.).
Ohne deinen Webaufbau nun genau zu kennen, aber nach einem groben Überblick muss nur diese Seite umgebaut werden, alles andere kann bleiben wie es ist.

Deine Seite inhalt.htm kannst du jetzt schon in inhalt.php umbenennen. Sofern dein Server php unterstützt müsstest du die Seite dann mit http://deschner-usa.de/inhalt.php aufrufen können. Um die Seite dann korrekt einzubinden, müsste nur noch der Link in deinem Menü entsprechend angepasst werden und du hättest deine erste PHP-Seite eingebunden.

So einfach ist es dann aber leider doch nicht.
Um das ganze dann dynamisch zu machen müsste man zuerst eine Datenbank anlegen. Wie die aussieht, hängt von den Informationen ab, die du verwenden möchtest. Wenn nicht wesentlich mehr an Infos, als schon angezeigt, dazu kommt, könnte man das sogar (wenn auch nicht ganz 100% Astrein) mit einer einzigen Tabelle lösen.
Diese Datenbank befüllt man dann mit allen Daten und den Links zu den einzelnen Unterseiten (Auch die könnten bleiben wie sie sind).

Grob geschossen könnte die Tabelle z.B. so aussehen (nochmal ist nicht astrein, aber verdeutlicht dein Vorhaben).

ID (eine Fortlaufende Nummer zur eindeutigen Erkennung)
Kontinent
Staat
Stadt
Kürzel (die 2’te Spalte mit den Kürzeln)
Bezeichnung_Link1
Link1 (ich nehme an, Jahr des Besuchs)
Bezeichnung_link2
Link2
Bezeichnung_Link3
Link3
Was_immer_du willst
Reserve
Schlagwort Liste
u.s.w

So eine Tabelle kann durchaus aus sehr vielen Spalten bestehen.

Das ist jetzt nur ein Beispiel zum Verdeutlichen, wie die Tabelle dann wirklich aussieht, hängt von dem Aufwand ab, den du betreiben willst.
Ist die Datenbank befüllt, erstellt man eine Abfrage und lässt von PHP eine Ausgabe mit dem Ergebnis generieren.
Das ist der Punkt, wo du nun dein wirkliches Ziel erreichst. Du lässt die Datenbank nur Daten finden, die zu einem bestimmten Staat gehören, oder nur Daten, deren Stadt mit einem A beginnt oder wo im Linktest Wüste vorkommt sortiert nach Staaten absteigend oder oder oder… Alles was du in der Datenbank abspeicherst, kann dann als Kriterium herangezogen werden, nach dem du suchen und ausgeben lässt. Je mehr Informationen du in der Datenbank ablegst, dest detaillierter kann man die Ausgabe steuern.
Wenn das einmal läuft, nimmt man die Seite inhalt.php und löscht dort die Tabellen raus und fügt das Abfragescript per include ein. Fertig.

Der eigentliche Arbeitsaufwand besteht darin, die Datenbank anzulegen und die Abfragedatei mit der Ausgabe zu erstellen. Der Rest ist simpel.
Bringt man das Ganze in eine ordentliche Struktur besteht der Vorteil darin, dass du jeder Zeit eine weitere Differenzierung einfügen kannst, indem du eine neue Abfrage erstellst nach der die Ausgabe von der Datenbank zusammengebaut wird.

Der Fehler den die meisten Leute bei solchen Vorhaben machen ist der, dass die Informationen für die Datenbank zu gering gehalten werden b.z.w. dass sie sich keine Gedanken machen, was noch an wichtigen Infos zu den bestehenden dazu kommen sollte. Die Befüllumg der Datenbank ist durchaus alles andere als lustig, wenn man jedoch lieber etwas zuviel Eingaben macht zahlt sich das meistens langfristig gesehen aus.

Normalerweise legt man Daten in Datenbanken so ab, dass sie nicht doppelt gewartet werden müssen. Dazu verwendet man meherer Tabellen, die man miteinander verknüpft. In deinem Fall könnte man aber den Aufwand minmieren und alles in eine einzelne Tabelle quetschen, was die Sache wesentlich vereinfacht.

Ich will dir nichts vormachen, das ist schon einiges an Arbeit, aber!
Es könnte alles erst mal so bleiben wie es ist und dann ist das keine Operation am offenen Herzen der Webseite. Läuft alles, schaltet man innerhalb von 1/2 Stunde um und du hast deine Freude. Ob das nun in 6 Wochen oder 3 Tagen ist, hängt auch von dir ab.

PS
Ich kenn solche Vorhaben übrigens recht gut, meistens kommt einige Zeit später der nächste Wunsch (z.B. eine Blätterfunktion für mehrere Seiten etc). Wichtig wäre, dass du dir vorher Gedanken machst, was du alles realisieren möchtest und dann kann man entscheiden, ob der Aufwand dafür steht. Ich würde für dein Anliegen vielleicht ein paar Stunden brauchen, du wohl entsprechend länger :?
Nachträgliches Umarbeiten ist meistens wesentlich schwieriger als gute Planung im Vorfeld und vorbereiten auf kommende Wünsche.

Hallo,
vielen Dank für Deine Mühe.
upps - das sollte auch kein Link sein (sondern der Hinweis zum klicken, da ich es ja so nur hochgeladen habe um mein Anliegen zu verdeutlichen. Will diese Seite, da ja in den „Ländern“ noch nichts steht wieder vom Netz nehmen)
Mir ist leider nichts besseres dazu eingefallen, eben „Null-Ahnung“

  • so kann ich mir auch unter „Blätterfunktion“ nichts vorstellen.

Mein Hauptproblem sehe ich allerdings darin, daß ich schon mal von diesen vielen „komischen“ Zeichen in PHP und bei der Datenbank keine Ahnung habe, und sie eben nicht verstehe. Um das Grundwissen zu erhalten, habe ich die Befürchtung, daß dies wie bei htm und css wieder Wochen (Monate?) dauert.

Ich habe bei einigen „Städten“ (Beispiel siehe „Annapolis“) ja noch eine Linkliste mit den einzelnen Sehenswürdigkeiten in der genannten Tabelle, wie müßte ich denn damit verfahren?

Vielen Dank und

Genau da würde eine zweite Tabelle zum Zug kommen.

In Tabelle 1 wird eine eindeutige ID für jeden Datensatz vergeben.
Nun könnte man eine Tabelle linkliste machen, die dann auf diese ID verweist und eine beliebige Menge links aufnimmt. Ruft man nun das Land mit der ID 1 Auf, wird in der Linkliste alles ausgelesen, was zu dieser ID eingetragen ist.

Also 2 Tabellen. und wenn es 3 oder mehr werden, lösen kann man das sicher.
Für die SQL-Abfragen gibt es hier wirklich genug Leute, und das Ausgabetemplate muss man ja nur einmal machen.

Die Karte ist ein gutes Beispiel, wo man die einzelnen Datenbankabfragen unterbringen könnte. Du hast schon viele Seiten (ut.htm, az.htm etc) da könnte man die Abfragen einbauen.

Hi,
hoffentlich nerve ich nicht zuviel?

Also
Tabelle 1 (ID Link) mit allen Daten füttern wie sie bisher in der Inhalts-Liste stehen.
d.h. 1 Datensatz für Annapolis (bzw. jeden Ort)
je 1. Datensatz, für jede Sehenswürdigkeit in Annapolis

Tabelle 2 (ID Staat) ?

Müßte dann die Tabelle Inhalt nicht anders dargestellt werden? So könnte ich mir vorstellen, daß dies nicht wie bisher (ul- li) funktioniert sondern eine extra Spalte dafür her müßte?
Bedeutet aber, daß wenns viele Listenpunkte sind x mal in Spalte 1 der Ortsname steht?

Irgendwie schwirrt mir gerade der Kopf und sehe da schon eine Lebensaufgabe drin (bin nämlich schon etwas betagter:roll:) ob ich das Ende noch erlebe ?.

P.S. die Seiten ut.htm etc. habe ich schon mal angelegt ( weil ich da ja die nach Staaten sortierte Liste einbauen wollte, in diesem Fall alle Daten aus der Inhaltsliste vom Staat Utah)
(werde die Dateien auch wieder vom Netz nehmen, war ja nur, damit man sieht, was mein Gedankengang war)

Du hast da z.B. folgenden Eintrag:

[TABLE=„class: index, width: 95%, align: center“]
[TR]
[TD][/TD]
[TD]Annapolis
[ul]
[li]City Dock [/li][li]Stadt - Besichtigung [/li][li]St. Anne’s Episcopal Church [/li][li][B]State House Maryland[/B] [/li][li]US Naval Academy [/li][/ul]
[/TD]
[TD]MD[/TD]
[TD]2009[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[/TABLE]

Ein Eintrag in einer Tabelle könnte z.B. so aussehen:

TABELLE 1 (Haupttabelle)

[TABLE=„class: grid, width: 500“]
[TR]
[TD]ID[/TD]
[TD]Name[/TD]
[TD]Land[/TD]
[TD]Bundesstaat[/TD]
[TD]Kurzzeichen[/TD]
[TD]BesuchsJahr[/TD]
[TD]Link[/TD]
[/TR]
[TR]
[TD]47
[/TD]
[TD]Annapolis[/TD]
[TD]USA[/TD]
[TD]Maryland[/TD]
[TD]MD[/TD]
[TD]2009[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[TR]
[TD]59
[/TD]
[TD]Astoria[/TD]
[TD]USA[/TD]
[TD]Oregon[/TD]
[TD]OR[/TD]
[TD]2011[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[/TABLE]

TABELLE2 (Sublinks)

[TABLE=„class: grid, width: 500“]
[TR]
[TD]HaupttabelleID[/TD]
[TD]LinkText[/TD]
[TD]Link[/TD]
[/TR]
[TR]
[TD]47
[/TD]
[TD]City Dock[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[TR]
[TD]47[/TD]
[TD]Stadt Besichtigung[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[TR]
[TD]47[/TD]
[TD]St. Anne’s Episcopal Church[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[TR]
[TD]59
[/TD]
[TD]Astoria Column[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[TR]
[TD]47
[/TD]
[TD]US Naval Academy[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[/TABLE]

Man beachte, die Sublink-Id’s liegen vollkommen wahrlos gereiht, es ist also nicht notwendig dass sie sortiert sind.

Nun lesen wir den ersten Datensatz aus der Haupttabelle aus (Annapolis) und bekommen die ID 47 des Datensatzes geliefert, nehmen die ID und lassen uns alle Daten aus der Sublinktabelle suchen, deren HaupttabelleID=ID also 47 ist (eventuell noch Alphabetisch aufsteigend/absteigend sortiert).
Damit hast du das selbe Ergebnis wie im Original.

PS.
Für dich dann interessant „zeige Alle Daten aus der Haupttabelle, deren Kurzzeichen=OR ist“ und du hast alle Städte aus Oregon

[HR][/HR]
Bei dir wohl nicht notwendig, aber der Korrektheit halber, damit mich die Datenbank-Freaks nicht steinigen…
Der Richtigkheit halber müsste man noch eine dritte, vierte und fünfte Tabelle anlegen, in der Länder, Bundesstaaten und Besuchsjahr gelistet werden, z.B.

TABELLE 3 (Land)

[TABLE=„class: grid, width: 500“]
[TR]
[TD]ID[/TD]
[TD]LandName[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD]USA[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]Kanada[/TD]
[/TR]
[/TABLE]

Und würden in der Haupttabelle den Namen des Landes durch dessen ID aus der TABELLE3 erstezen.

[TABLE=„class: grid, width: 500“]
[TR]
[TD]ID[/TD]
[TD]Name[/TD]
[TD]Land[/TD]
[TD]Bundesstaatand[/TD]
[TD]Kurzzeichen[/TD]
[TD]BesuchsJahr[/TD]
[TD]Link[/TD]
[/TR]
[TR]
[TD]47[/TD]
[TD]Annapolis[/TD]
[TD]1[/TD]
[TD]Maryland[/TD]
[TD]MD[/TD]
[TD]2009[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[TR]
[TD]59[/TD]
[TD]Astoria[/TD]
[TD]1[/TD]
[TD]Oregon[/TD]
[TD]OR[/TD]
[TD]2011[/TD]
[TD]Link zur Seite[/TD]
[/TR]
[/TABLE]

Bei dir wäre das aber nicht unbedingt notwendig und könnte auch wie oben aussehen. Das Selbe nochmal für Besuchsjahr und Bundesstaat.

Hi sysop,

Vielen, vielen Dank, jetzt habe ich zumindest die „Logik“ kapiert. Werde mal versuchen ob ich das auch umsetzen kann?