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

  • larsibaby78
    hat ein Thema erstellt Mehrere Inputfelder in DB speichern.

    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

  • Gast-Avatar
    Ein Gast antwortete
    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'];

    Einen Kommentar schreiben:


  • Wolla
    antwortet
    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.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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.

    Einen Kommentar schreiben:


  • larsibaby78
    antwortet
    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

    Einen Kommentar schreiben:


  • Wolla
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X