Daten mittels Schleife in Datenbank speichern

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

  • Daten mittels Schleife in Datenbank speichern

    Hallo,

    ich hab ein Formular mit etlichen Fragen, die nur durch Auswahl eines Radiobutton beantwortet werden. Die Formularbezeichnungen unterscheiden sich lediglich duch ne Nummer (frage1, frage2, frage3...), deshalb will ich die SQL-Anweisung mit einer Schleife zusammenbasteln. Leider funktioniert es nicht den Variablennamen aus zwei Variablen zusammen zu setzen

    PHP-Code:
       $sql="INSERT INTO $tabellenname (IDuser,Name,Datum";
       for(
    $i=1;$i<28;$i++)
       {
       
    $sql.=",Frage_$i";
       }
       
    $sql.=") values ('$IDuser',$Name','$date()'";
       for(
    $i=1;$i<28;$i++)
       {
       
    $varname "\$frage"."$i"// <-- hier liegt irgendwo dass Problem
       
    $sql.=",$varname";
       }
       
    $sql.=")"
    weiss jemand Rat?

  • #2
    1. was genau funktioniert denn nicht? kommt ne Fehlermeldun?
    2. hast du schonmal die Var. $sql ausgegeben
    3. deine Variablen fangen mit einem "\" an? ....
    [color=red]Geht nicht[/color] ist keine Fehlermeldung

    Kommentar


    • #3
      Original geschrieben von Big Chief
      3. deine Variablen fangen mit einem "\" an? ....
      nein, aber er möchte $frage als text ausgeben, und hat deshalb das $-zeichen maskiert.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        ich weiss wozu das "\" gut is .... wollte nur nachhaken ob er auch weiss was da genau passiert (da explizit angesprochen wird, dass in dieser Zeile der Fehler stecken soll)
        [color=red]Geht nicht[/color] ist keine Fehlermeldung

        Kommentar


        • #5
          Von meiner Seite mal der Hinweis: Scheint ein beschissener Datenbank-Entwurf zu sein ... !
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            Also... die Datenbank und dat Formular sind ja nun schon da gewesen.
            Im Formular müssen die Leute 27 Frage beantworten

            PHP-Code:
                  <td><input type="radio" name="frage1" value="1"></td>
                  <
            td><input type="radio" name="frage1" value="2"></td>
                  <
            td><input type="radio" name="frage1" value="3"></td>
                  <
            td><input type="radio" name="frage1" value="4"></td>
                  <
            td><input type="radio" name="frage1" value="5"></td
            das ganze halt 27 Mal
            die Ergebnisse der Fragen werden zusammen mit dem Namen und der ID gespeichert.
            Diese Fragebogen wird dann von allen Nutzern monatlich ausgefüllt und abgespeichert.

            das \vor dem $frage ist, damit nicht nach einer variable mit selbigen Namen sucht. sondern

            wenn ich mit echo $sql die Anweisung ausgebe kommt folgendes

            PHP-Code:
            INSERT INTO fremd (IDuser,Name,Datum,Frage_1,Frage_2,.....Frage_27values ('5','tester','date()',$frage1,$frage2,....$frage27
            die Nutzerdaten und die anderen fragebögen werden in seperaten Tabellen gespeichrt.

            Was wäre ein besseres Datenbankdesign?
            Wie krieg ich den php-Code funktionstüchtig hin?

            Bye, Bye
            und Gruß

            Kommentar


            • #7
              Original geschrieben von XYungeloest
              PHP-Code:
                    <td><input type="radio" name="frage1" value="1"></td>
                    <
              td><input type="radio" name="frage1" value="2"></td>
                    <
              td><input type="radio" name="frage1" value="3"></td>
                    <
              td><input type="radio" name="frage1" value="4"></td>
                    <
              td><input type="radio" name="frage1" value="5"></td
              Also wie wollen da bitte die User 27 fragen beantworten? ich könnte nur eine beantworten.

              Forumregeln!

              Gute PHP-(tutorial-)Seiten

              Kommentar


              • #8
                du solltest frage1 in ein array verwandeln oder für name="frage1" frage2 ... frage27 sorgen

                lg
                hi0b

                EDIT:
                autsch, das sind ja radiobuttons und nicht checkboxen sorry
                Zuletzt geändert von hi0b; 23.07.2004, 07:48.

                Kommentar


                • #9
                  @Davidovich

                  na das geht natürlich so weiter
                  PHP-Code:
                      <tr
                        <
                  td>1</td>
                        <
                  td> &Uuml;berblick Arbeitsumfeld und Situation</td>
                        <
                  td><input type="radio" name="frage1" value="1"></td>
                        <
                  td><input type="radio" name="frage1" value="2"></td>
                        <
                  td><input type="radio" name="frage1" value="3"></td>
                        <
                  td><input type="radio" name="frage1" value="4"></td>
                        <
                  td><input type="radio" name="frage1" value="5"></td>
                      </
                  tr>
                      <
                  tr
                        <
                  td>2.</td>
                        <
                  tdSelbstst&auml;ndigkeit bei der Arbeit</td>
                        <
                  td><input type="radio" name="frage2" value="1"></td>
                        <
                  td><input type="radio" name="frage2" value="2"></td>
                        <
                  td><input type="radio" name="frage2" value="3"></td>
                        <
                  td><input type="radio" name="frage2" value="4"></td>
                        <
                  td><input type="radio" name="frage2" value="5"></td>
                      </
                  tr>
                  .........
                  bis 27 halt
                  ich bin eigentlich zu faul die Fragen alle abzuschreiben, muss ich dann wohl doch in eine zusätzliche DatenbankTabelle schreiben um die komplette Tabelle in einer Schleife auszugeben???
                  und wie krieg ich dann das eigentliche Problem $frage$i hin?
                  Ich könnte ja die sql-Anweisung komplett ausschreiben(ohne Schleife), wäre damit auch schon fertig, aber ist ja nicht im Sinne des Programmierer.

                  (Programmierer sind Leute die Tagelang nach einer automatischen Lösung für ein Problem suchen, für dessen Beseitigung eine Putzfrau 5 Minuten braucht)


                  viele Grüße

                  Kommentar

                  Lädt...
                  X