Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Felder hinzufügen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Felder hinzufügen

    Hallo zusammen

    Ich bin an ein Problem angelangt, wo ich selber nicht mehr wirklich weiter komme.

    Folgendes :

    Ich habe eine Benutzerverwaltung und möchte "Felder" hinzufügen ohne dass ich was in der php Datei ändern muss.

    MySQL DB Aufbau :
    Tabellenname => users

    user_ID
    user_name
    user_nachname
    user_vorname


    Ich möchte jetzt über einen Button ein Feld hinzufügen können in der Datenbank.

    z.B. das Feld => user_adresse

    Soweit so gut, auch das ist kein Problem.
    Das Problem kommt jetzt bei folgendem.

    Ich möchte einen neuen User erfassen und da ist jetzt ja ein Feld mehr wo gefüllt werden sollte.

    Wie kann ich das so programmieren, dass ich dieses Feld im Formular auch angezeigt bekomme und etwas reinschreiben kann ?
    Ausserdem wäre nicht schlecht, wenn man auch die Felder Reihenfolge ändern kann.


    erfassen.php

    PHP-Code:

    <?php
    include_once 'config.php'// Hier ist die Verbindung zur DB


    echo '<form method="POST">';

    echo 
    "Username";
    echo 
    '<input type="text" name="username" value="" />';
    echo 
    "Nachname";
    echo 
    '<input type="text" name="nachname" value="" />';
    echo 
    "Vorname";
    echo 
    '<input type="text" name="vorname" value="" />';
    echo 
    '<input type="submit" name="speichern" value="Speichern" />';

    echo 
    '</form>';

    if (isset(
    $_POST['speichern'])) {

    $sql mysqli_query ($mysqli"INSERT INTO users (
    user_name, 
    user_nachname, 
    user_vorname) 

    VALUES (
    '"
    .$_POST['username']."'
    '"
    .$_POST['nachname']."'
    '"
    .$_POST['vorname']."'
    )"
    );

    // ENDE IF ISSET SPEICHERN

    ?>
    Ich nehme einmal an, dass ich hier eine While Schleife machen muss von den Spalten die ich in der DB habe, jedoch weiter weis ich nicht mehr.

    Hat jemand eine Idee, wie ich dieses Problem lösen könnte um dies möglichst Dynamisch zu machen ?


  • #2
    Ahoi,

    also erstmal würde ich die Tabellenstruktur dafür ändern. Eine Tabelle mit den Attributen, eine Tabelle mit dem User und eine um diese beiden zusammen zu führen.
    Um ein neues Feld anzulegen brauchst du dann kein ALTER TABLE sondern ein einfaches INSERT.
    Das Neue Feld legst du via AJAX-Request an und gibst es dann bei Erfolg mit aus.
    Mehr ist da eigentlich nicht zu machen.
    ------
    Grüße Manü

    Kommentar


    • #3
      Inwiefern würdest du dies ändern ?

      Tabelle user =>

      user_id
      user_name
      user_nachname
      user_vorname

      neue Tabelle machen mit den Variablen einträgen z.B.

      Tabelle => user_variabel

      user_adresse (manuell hinzugefügt)

      Meinst du in etwas dies mit der Tabellenstruktur ?

      --------------------------------------------------------------------------

      Das mit dem Ajax Request, dann ist diese ja "nur" temporär oder ist dies danach auch fix in der php datei enthalten ?

      Kommentar


      • #4

        http://www.php.de/php-fortgeschritte...uncements.html
        http://www.php.de/php-einsteiger/675...sumfragen.html
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Was möchtest du mit diesen Links sagen ?

          Tut mir leid, wenn ich nicht viel Ahnung von Ajax habe. Aber ich mache mich darüber schlau.

          Kommentar


          • #6
            Tabelle User => id, username
            Tabelle Attribute => id, name, typ, ...
            Tabelle User_Attribute => user_id, attribute_id, wert

            so meine ich das mit den Tabellen ... 3. Normalform und Joins solltest du dir dazu auf jedenfall anschauen.
            ------
            Grüße Manü

            Kommentar


            • #7
              Du kannst ohne Probleme die Spaltennamen deiner Tabelle auslesen, diese in ein Array packen und das Array dann für die Erzeugung deines Formulars, Prüfen der Eingaben usw. benutzen.
              Das Ganze wird nur etwas unschön wirken (Spaltenname = Bezeichner im Formular). Spätestens beim Prüfen der Eingaben musst du dir etwas einfallen lassen, wenn du nicht Felder wie Mailadresse und Name über einen Kamm ziehen möchtst.
              PHP-Klassen auf github

              Kommentar


              • #8
                Danke für die Inputs, werde dies jetzt einmal versuchen.

                Falls meine Lösung geht, werde ich hier noch den Code reinposten, falls jemand auch mal dieses Problem haben sollte.

                Gruss

                Kommentar

                Lädt...
                X