Sven: Alle Datenbank felder ausgeben

Moinser an alle,

in Zusammnahng mit einer detailierten Suchfunktion möchte ich dem Nutzer gerne eine Selectbox anbieten, mit der er aus allen vorhandenen Dabellenfeldern die jenige selektieren kann, in der letztlich die Suche durchgeführt werden soll.

Mein Problem ist nun, wie kann ich dem User bzw der Selectbox diese Felder zuweisen. Also nicht die Inhalte der Datenbankfelder, sondern die Bezeichnung der Datenbankfelder.
Da gibt es doch bestimmt ne Möglichkeit, ohne diese Manuell im PHP-Content einzutippern. Sind nämlich ein paar viele Felder...

Vielen Dank vorab für Eure Hilfe und ein schönes Wochenende wünscht

Der Sven

  1. Da gibt es doch bestimmt ne Möglichkeit, ohne diese Manuell im PHP-Content einzutippern. Sind nämlich ein paar viele Felder...

    Ja, mithilfe der Datenbank - ein PHP-Problem ist das aber nicht.

    Nachdem ich wohlwollend rate, dass du MySQL in einer aktuellen Version verwendest:

    SHOW COLUMNS

  2. Hi!

    in Zusammnahng mit einer detailierten Suchfunktion möchte ich dem Nutzer gerne eine Selectbox anbieten, mit der er aus allen vorhandenen Dabellenfeldern die jenige selektieren kann, in der letztlich die Suche durchgeführt werden soll.
    Mein Problem ist nun, wie kann ich dem User bzw der Selectbox diese Felder zuweisen. Also nicht die Inhalte der Datenbankfelder, sondern die Bezeichnung der Datenbankfelder.

    Willst du das wirklich? Sind die so sprechend, dass Anwender damit zurecht kommen? Und willst du alle Felder haben? Nicht selten hat man ja Felder in den Tabellen, die (nur) zur Verwaltung dienen, wie die ID. Ich würde ja alle vorgesehenen Felder als Schlüssel in ein Array schreiben und als Werte dazu den anzuzeigenden Text.

    Da gibt es doch bestimmt ne Möglichkeit, ohne diese Manuell im PHP-Content einzutippern. Sind nämlich ein paar viele Felder...

    Mit dem SHOW-Statement bekommst du alle Meta-Informationen zum DBMS, SHOW COLUMNS wäre das passende für dich. Zudem gibt es noch die Pseudo-Datenbank INFORMATION_SCHEMA, die ebenfalls solche Meta-Informationen bereitstellt.

    Lo!

    1. Hi!

      Ich würde ja alle vorgesehenen Felder als Schlüssel in ein Array schreiben und als Werte dazu den anzuzeigenden Text.

      Das ist ja übrigens auch eine sicherheitstechnisch zu beachtende Frage. Das was da vom Client kommt, muss gegen die erlaubten Werte geprüft werden. Du kannst natürlich auch vor dem Suchen erst noch erneut die Spaltennamen ermitteln (oder aus Cache/Session auslesen) und die Benutzerwahl dagegen prüfen.

      Lo!

    2. Willst du das wirklich? Sind die so sprechend, dass Anwender damit zurecht kommen? Und willst du alle Felder haben? Nicht selten hat man ja Felder in den Tabellen, die (nur) zur Verwaltung dienen, wie die ID.

      ...mhh haste auch wieder recht.

      Dann ist es wohl doch besser das ganze manuell mit einer Vorauswahl zu realisieren.

      Danke für den Hinweis.

      Besten Gruß