elegantere Lösung gesucht

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • elegantere Lösung gesucht

    Ich suche eine elegantere Lösung für folgendes Problem: Ich habe ein Formular, das unter anderem die drei Textfelder [color=blue]feltext1[/color], [color=blue]feltext2[/color] und [color=blue]feltext3[/color] enthält. Diese prüfe ich, ob sie etwas enthalten und füge den Inhalt dann in die DB ein.
    PHP Code:
    if (isset($feltext1))
        {
        
    $sql "INSERT INTO vwf_gc_felgen SET
                  gcid = '
    $newgcid',
                  feltext = '
    $feltext1'";
        if (@
    mysql_query($sql))
            {
            echo(
    "<br>Schritt <b>2.1</b> von <b>X</b> zum Einfügen der Daten erfolgreich abgeschlossen.");
            }
        else
            {
            echo(
    "<br>Fehler bei Schritt <b>2.1</b> von <b>X</b> beim Einfügen der Daten: " mysql_error() );
            }
        }

    if (isset(
    $feltext2))
        {
        
    $sql "INSERT INTO vwf_gc_felgen SET
                  gcid = '
    $newgcid',
                  feltext = '
    $feltext2'";
        if (@
    mysql_query($sql))
            {
            echo(
    "<br>Schritt <b>2.2</b> von <b>X</b> zum Einfügen der Daten erfolgreich abgeschlossen.");
            }
        else
            {
            echo(
    "<br>Fehler bei Schritt <b>2.2</b> von <b>X</b> beim Einfügen der Daten: " mysql_error() );
            }
        }

    if (isset(
    $feltext3))
        {
        
    $sql "INSERT INTO vwf_gc_felgen SET
                  gcid = '
    $newgcid',
                  feltext = '
    $feltext3'";
        if (@
    mysql_query($sql))
            {
            echo(
    "<br>Schritt <b>2.3</b> von <b>X</b> zum Einfügen der Daten erfolgreich abgeschlossen.");
            }
        else
            {
            echo(
    "<br>Fehler bei Schritt <b>2.3</b> von <b>X</b> beim Einfügen der Daten: " mysql_error() );
            }
        } 
    Um das ganze etwas besser zu lösen, hab ich mir gedacht, dass ich das ganze mit 'ner Schleife mache. Da ich ja weiß, wie viele Felder es sind, hab ich mich für eine for-Schleife entschieden:
    PHP Code:
    for($count=1;$count<4;$count++)
        {
        
    $temp =  $feltext $count;    // Namen der Eingabefelder bilden

        
    if (isset($temp))
            {
            
    $sql "INSERT INTO vwf_gc_felgen SET
                      gcid = '
    $newgcid',
                      feltext = '
    $temp'";
            if (@
    mysql_query($sql))
                {
                echo(
    "<br>Schritt <b>2." $count "</b> von <b>X</b> zum Einfügen der Daten erfolgreich abgeschlossen.");
                }
            else
                {
                echo(
    "<br>Fehler bei Schritt <b>2." $count "</b> von <b>X</b> beim Einfügen der Daten: " mysql_error() );
                }
            }
        } 
    Nun habe ich allerdings das Problem, dass der Teil [color=blue]$temp = $feltext . $count;[/color] um die Namen der Eingabefelder zu bilden nicht funktioniert. [color=blue]$temp[/color] sollte eigentlich bei den drei Durchläufen folgendes enthalten:
    • $feltext1
    • $feltext2
    • $feltext3
    [color=blue]$temp[/color] enthält aber derzeit
    • 1
    • 12
    • 123
    Ich habe anstatt [color=blue]$temp = $feltext . $count;[/color] auch schon [color=blue]$temp = "\$feltext" . $count;[/color] versucht, allerdings mit dem gleichen falschen Ergebnis. Kann mir jemand helfen?
    CU
    Highlander

    VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

  • #2
    Re: elegantere Lösung gesucht

    Original geschrieben von Highlander
    }
    Nun habe ich allerdings das Problem, dass der Teil [color=blue]$temp = $feltext . $count;[/color] um die Namen der Eingabefelder zu bilden nicht funktioniert. [color=blue]$temp[/color] sollte eigentlich bei den drei Durchläufen folgendes enthalten:
    • $feltext1
    • $feltext2
    • $feltext3
    [color=blue]$temp[/color] enthält aber derzeit
    • 1
    • 12
    • 123
    versuch mal

    $temp = ${'feltext'.$count};

    mfg

    Comment


    • #3
      $feltext1

      $feltext2

      $feltext3


      sollen 3 einzelne einträge sein, oder mit einmal als ein neuer eintrag ???
      Splinter Cell Base

      Comment


      • #4
        Original geschrieben von BetaSux
        $feltext1

        $feltext2

        $feltext3

        sollen 3 einzelne einträge sein, oder mit einmal als ein neuer eintrag ???
        Beim ersten Durchlauf $feltext1, beim Zweiten $feltext2 usw.
        CU
        Highlander

        VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

        Comment


        • #5
          Re: Re: elegantere Lösung gesucht

          Original geschrieben von Trashar
          versuch mal

          $temp = ${'feltext'.$count};

          mfg

          Comment


          • #6
            nee sorry hab mich bestimmt wieder dämlich ausgedrückt


            wollt wissen ob feltext1 - feltext3 mit einmal als einen db eintrag schreiben willst oder ob feltext1 - feltext3 nacheinander eintragen willst ...
            Splinter Cell Base

            Comment


            • #7
              @ BetaSux

              Ich wollte den Inhalt in drei Schritten nacheinander eintragen.
              CU
              Highlander

              VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

              Comment


              • #8
                Wieso willst du die Datenbank dreimal ansprechen wenn es auch mit nur einen mal geht?
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Comment


                • #9
                  na denn sollte Trashar´s schon des rechte sein
                  Splinter Cell Base

                  Comment


                  • #10
                    Die Lösung von Trashar war die richtige!
                    Ich musste nur noch die If-Bedingung anpassen und nun funktionierts.
                    PHP Code:
                    for($count=1;$count<4;$count++)
                         {
                         
                    $temp "";
                         
                    $temp = ${'feltext'.$count};    // Namen der Eingabefelder bilden

                         
                    if (${'feltext'.$count} != "")
                              {
                              
                    $sql "INSERT INTO vwf_gc_felgen SET
                                         gcid = '
                    $newgcid',
                                         feltext = '
                    $temp'";
                              if (@
                    mysql_query($sql))
                                    {
                                    echo(
                    "<br>Schritt <b>2." $count "</b> von <b>X</b> zum Einfügen der Daten erfolgreich abgeschlossen.");
                                    }
                              else
                                    {
                                    echo(
                    "<br>Fehler bei Schritt <b>2." $count "</b> von <b>X</b> beim Einfügen der Daten: " mysql_error() );
                                    }
                              }
                         } 
                    @ Wotan

                    Was müsste ich denn ändern, damit ich alles auf einmal in die DB eintragen kann?
                    CU
                    Highlander

                    VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

                    Comment


                    • #11
                      Nur als Gedankenanstoss!!! PHP-Code musst du dir daraus selber erstellen!!!

                      1) Du prüfts wie oft feltext übergeben wird.
                      2) Du baust dir dann deinen SQL-String zusammen. Beispiel:
                      Code:
                      $sql = "INSERT INTO tabelle SET feltext1='feltext1, feltext2='$feltext2', feltext3='$feltext3'";
                      Das wäre jetzt dein SQL-String wenn du aale drei angegeben hast.
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Comment


                      • #12
                        @ Trashar, BetaSux, Wotan

                        Vielen Dank für eure wahnsinnig schnelle Hilfe!

                        Wirklich ein super Forum!
                        CU
                        Highlander

                        VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

                        Comment

                        Working...
                        X