elegantere Lösung gesucht

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

  • 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

    Kommentar


    • #3
      $feltext1

      $feltext2

      $feltext3


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

      Kommentar


      • #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

        Kommentar


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

          Original geschrieben von Trashar
          versuch mal

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

          mfg

          Kommentar


          • #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

            Kommentar


            • #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

              Kommentar


              • #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/

                Kommentar


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

                  Kommentar


                  • #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

                    Kommentar


                    • #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/

                      Kommentar


                      • #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

                        Kommentar

                        Lädt...
                        X