Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere Inputfelder in DB speichern

Einklappen

Neue Werbung 2019

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

  • Mehrere Inputfelder in DB speichern

    Hallo zusammen,

    ich bin nun schon eine ganze Weile "stiller" Betrachter dieses Forums und ich habe hier schon einige hilfreiche Tipps gefunden. Zu meinem aktuellen jedoch nicht. Nun zu meinem Problem...

    Also ich habe eine Tabelle in der Artikel gespeichert werden die wie folgt aussieht:
    Tabelle Artikel:
    ID|Artikelname|Artikelnummer|Beschreibung|Preis EK|Preis VK|Hersteller|

    So nun liste ich alle Artikel auf und habe für jeden Artikel ein Inputfeld.
    Sieht etwa so aus:

    User | Artikelnummer,Artikelname | Input Größe | Input Anzahl | Preis VK

    So nach abschicken sollen die Daten in der Tabelle Bestellung gespeichert werden. Die wie folgt aussieht:
    Tabelle Bestellung:
    ID | UserID | ArtikelID | Bestell_ID | Groesse | Preis | Anzahl

    Die UserID und Bestell_ID gibt es ja nur einmal (also kein Array) aber der Rest eben schon.

    Nun zu meiner Frage. Wie bekomme ich nun die Daten in die DB?
    Ich habe absolut keine Ahnung wie ich das machen soll

    Vielen Dank


  • #2
    Du machst für jede Zeile ein eigenes Formular <form>...</form> mit jeweils action ="".

    In jedes Formular machst du die Artikel-ID als hidden input und die anderen Felder als normale input-Felder.

    nach dem Absenden des Formulars schaust du dir den $_POST-Array an - dann weißt du schon, wie es weitergeht.
    PHP-Code:
    if ($var != 0) {
      
    $var 0;

    Kommentar


    • #3
      Das klingt ja prinzipiell nicht schlecht, aber dann muss ich ja für jeden artikel klicken

      Geht das nicht auch in dieser Form?

      PHP-Code:
      foreach($a => $value){
      mysql_unbuffered_query('INSERT INTO tabelle (id,wert) VALUES (\''.$value.'\',\''.$id.'\')');

      Nur weiß ich nicht wie ich es machen soll mit mehreren arrays

      Kommentar


      • #4
        Abgesehen davon, dass deine Datenbank-Struktur nicht gerade optimal ist, dürfte PHP: serialize - Manual und PHP: unserialize - Manual relevant sein. Damit kannst du Arrays als eine Zeichenkette in der Datenbank speichern und wieder entsprechend auslesen.

        Kommentar


        • #5
          dürfte PHP: serialize - Manual und PHP: unserialize - Manual relevant sein. Damit kannst du Arrays als eine Zeichenkette in der Datenbank speichern und wieder entsprechend auslesen.
          Quark mit Soße. Das braucht er nun wirklich nicht.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Das klingt ja prinzipiell nicht schlecht, aber dann muss ich ja für jeden artikel klicken
            Und wo ist das Problem?
            Dein Ansatz klappt ja eh nur für Listen mit ganz wenigen Artikeln. Wenn du z.B. 500 Artikel hast, dann kannst du nicht 500 Zeilen ausgeben, nur weil du den Wert in einem einzigen Artikel ändern willst. Das macht man dann so, dass in einem ersten Formular die Artikelnummer eingegeben wird, dann die Daten in ein zweites Formular ausgegeben werden, welches dann nach Änderung abgeschickt wird und der Artikel wieder gespeichert wird.
            Im Mehrbenutzerbetrieb wird es noch etwas umfangreicher.
            PHP-Code:
            if ($var != 0) {
              
            $var 0;

            Kommentar


            • #7
              Zitat von nikosch Beitrag anzeigen
              Quark mit Soße. Das braucht er nun wirklich nicht.
              Sehr konstruktiver Beitrag, wirklich. Es ist nun mal ein möglicher Weg, einen Array zu serialisieren und als String in der Datenbank zu speichern. Dass dies grundsätzlich nicht die beste Lösung ist, ist mir bewusst. Jedoch rechtfertigt dies nicht den plumpen Kommentar deinerseits.


              @larsibaby78

              Soweit ich dich verstanden habe, willst du über ein Formular mehrere Produkte in der Datenbank speichern. Hier ein möglicher Ansatz von mir:

              PHP-Code:
              print '<form action="index.php" method="post">
                          <input name="groesse[1]"/>
                          <input name="anzahl[1]" />
                          <input name="groesse[2]" />
                          <input name="anzahl[2]" />
                          <input type="submit" />
                      </form/>'
              ;
                      
              foreach (
              $_POST as $key => $value) {
                  foreach (
              $value as $key2 => $value2) {
                      
              $array[$key2][$key] = $value2;
                  }    
              }

              foreach (
              $array as $key => $value){
                  
              // Hier dein MySQL-Query
                  
              print $value['price'];
                  print 
              $value['groesse'];

              Kommentar

              Lädt...
              X