[INSERT] Problem

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

  • [INSERT] Problem

    >>> VORSPANN <<<



    ich habe ein kleines INSERT Problem. Und zwar habe ich ein Formular welches über DOM-Manipulation mehrere Paare <input>-Felder erzeugt.

    HTML-Code:
    <input name="menge" value="ausleihe[menge]" type="hidden" />
    <input name="menge" value="ausleihe[cd]" type="hidden" />
    So nun habe ich auch alle CD und die dazugehörige Menge in der Array ausleihe. Nun möchte ich sie in folgende DB speichern (wobei ausleihnr klar ist).

    Verleihe DB: CD, Menge, AusleiheNr

    Also, wenn ich zB folgende Array habe:
    3, 1
    4, 2
    1, 1
    9, 1

    Soll das wie folgt gespeichert werden:

    Verheihe DB:
    3, 1, 111
    4, 2, 111
    1, 1, 111
    9, 1, 111


    Weisst ihr was ich meine?
    Zuletzt geändert von JohnWorksCooper; 04.03.2010, 19:53.

  • #2
    Zitat von JohnWorksCooper Beitrag anzeigen
    Weißt ihr was ich meine?
    Nein. Zwischen den vorliegenden Daten und dem, was du speichern willst, ist kein direkter Zusammenhang erkennbar.

    Allerdings macht es den Eindruck, dass du dich um vernünftige Normalisierung drücken willst.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Zitat von JohnWorksCooper Beitrag anzeigen
      Weißt ihr was ich meine?
      Ja

      Peter

      PS: Es heißt "Wisst ihr"
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        @Peter: Gibt es auch eine Antwort?

        >>> Der bisherige Stand <<<

        Formular-Felder:
        PHP-Code:
        <input name="produkt_array[id][]" value="..." type="hidden" />
        <
        input name="produkt_array[menge][]" value="..." type="hidden" /> 
        Nach dem Submit:
        PHP-Code:
        $data $_GET[produkt_array];

         for(
        $z=0;$z<count($data);$z++){
           echo 
        $data[id][$z] . $data[menge][$z] .'<br>';
         } 
        Jedoch kommt nicht das gewünschte Ergebnis! Denn eigentlich sollte, wenn
        PHP-Code:
        <input name="produkt_array[id][]" value="1" type="hidden" />
        <
        input name="produkt_array[menge][]" value="2" type="hidden"  />

        <
        input name="produkt_array[id][]" value="1" type="hidden" />
         <
        input name="produkt_array[menge][]" value="1" type="hidden"  />

        <
        input name="produkt_array[id][]" value="2" type="hidden" />
         <
        input name="produkt_array[menge][]" value="1" type="hidden"  />

        <
        input name="produkt_array[id][]" value="3" type="hidden" />
         <
        input name="produkt_array[menge][]" value="1" type="hidden"  /> 
        Ergebnis sollte, sein:
        Code:
        1 2
        1 1
        2 1
        3 1

        Kommentar


        • #5
          1. Formulardaten sollte man per POST schicken
          2. es heißt
          PHP-Code:
          echo $data['id'][$z] . $data['menge'][$z] .'<br>'
          3. Schau dir das Ergebnis mal mit print_r($_POST['produkt_array'] an, dann siehst du den Fehler wahrscheinlich selber.
          4. es ist nicht von großen Interesse zu wissen, wie das Ergebnis aussehen sollte, sondern wie es tatsächlich ist
          Peter
          Zuletzt geändert von Kropff; 05.03.2010, 16:01.
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Peter

            PHP-Code:
            <input name="produkt_array[i][id]" value="..." type="hidden" />
            <
            input name="produkt_array[i][menge]" value="..." type="hidden" /> 

            i++ 
            PHP-Code:
            for($z=0;$z<count($_POST['produkt_array']);$z++){
               echo 
            $data[$z]['id'] . $data[$z]['menge'] .'<br>';
             } 
            Zuletzt geändert von JohnWorksCooper; 05.03.2010, 16:37.

            Kommentar


            • #7
              Nicht
              PHP-Code:
              $_POST[produkt_array
              Sondern
              PHP-Code:
              $_POST['produkt_array'
              Gewöhn dir das bitte schnellstmöglich an, sonst fällst du irgendwann richtig auf die Fresse.

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Zitat von Kropff Beitrag anzeigen
                Nicht
                PHP-Code:
                $_POST[produkt_array
                Sondern
                PHP-Code:
                $_POST['produkt_array'
                Gewöhn dir das bitte schnellstmöglich an, sonst fällst du irgendwann richtig auf die Fresse.

                Peter
                Da sagt auch jeder was anderes in verschiedenen Foren... aber kommt raus!

                Kommentar


                • #9
                  Die Sache ist ganz einfach. Wenn du das so schreibst,
                  PHP-Code:
                  $_POST[produkt_array
                  dann wird produkt_array als Konstante behandelt. Ist die nicht vorhanden, so wandelt PHP den Konstantennamen in einen String um. Das entspricht dann einem
                  PHP-Code:
                  $_POST['produkt_array'
                  Aber was passiert, wenn du vorher eine entsprechende Konstante definiert hast?
                  PHP-Code:
                  define('produkt_array''blubb'); 
                  Dann hast du auf einmal ein
                  PHP-Code:
                  $_POST['blubb'
                  Darum lasse ab von deinem schändlichen Tun und arbeite sauber(!) mit Hochkommata.

                  Peter

                  PS: man sollte nicht immer auf andere Leute hören. Oder zumindest vorher deren Aussagen überprüfen. Es wird heutzutage viel zu viel Blödsinn geredet.
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar

                  Lädt...
                  X