Tabelle durch Select+option aussuchen

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

  • Tabelle durch Select+option aussuchen

    Hi Leute.

    Wie im Titel schon gesagt hänge ich schon seit langem an einer Select+Option Liste bei der ich meine Tabellen im value drin hab und durch anklicken der Liste die gewünschte Tabelle aussuchen und da dann Wert ändern.

    Code:
            <select name="select6">
              <option value="BMW'">BMW
              <option value="Audi">Audi
            </select>
    $select6 = $_POST['select6'];
    { 
    $wirdgeaendert = $_POST['wert1'];
     mysql_query("UPDATE $select Set Gehause = '$wirdgeaendert' WHERE id = '1'") or   die (mysql_error()); 
    }
    was mache ich hier falsch?

    Ich bitte um Hilfe.!!...

    Währe euch sehr dankbar!!

    MfG Duti
    Zuletzt geändert von duti; 30.05.2010, 11:30.

  • #2
    Hallo und willkommen im Forum,

    $select ist nicht dasselbe wie $select6, Zeichenketten sollten sauber mit . verkettet werden, Benutzereingaben sollten geprüft und/oder escaped werden (SQL-Injection) und dein Datenbankdesign ist fragwürdig und sollte normalisiert werden.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      ohh sorry^^ hab da schnell schnell einen Beispiel gemacht.

      also eigentlich sieht das so aus

      Code:
      <html>
      <select name="select6">
                <option value="BMW">BMW
                <option value="Audi">Audi
              </select>
      </html>
      <?php
      include ("mysqllogin.php");
                mysql_select_db("duti") or die ("DB existiert nicht");
      
      $select6 = $_POST['select6'];
      
      {
      $wirdgeaendert = $_POST['wert1'];
       mysql_query("UPDATE $select6 Set Gehause = '$wirdgeaendert' WHERE id = '1'") or   die (mysql_error());
      }
      ?>
      die $select6 sollte sich ja im mysql_query zum gewünschten Value ändern doch das macht der nicht hab immer die Fehler meldung
      <"ou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Set Gehause = '' WHERE id = '1'' at line 1">

      wie kann ich das lösen`?
      Oder gibt es eine andere möglichkeit?

      Kommentar


      • #4
        Das ist aber kein HTML, was du da zusammengekloppt hast!

        Die Formulardaten stehen PHP erst zur Verfügung, wenn das Formular abgeschickt wurde. Dafür brauchst du noch einen Submit-Button.

        Edit: Die geschweiften Klammern unten sind überflüssig, wenn auch nicht falsch, wie ich vorher schrieb.

        Die anderen, bereits erwähnten, Probleme sind ebenfalls nicht zu vernachlässigen.

        Edit: Der SQL-Fehler rührt daher, dass $select6 offenbar noch leer ist. Lass dir doch einfach die generierte Abfrage anzeigen, bevor du sie ausführst.
        Zuletzt geändert von AmicaNoctis; 30.05.2010, 11:57.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Versuch mal die Formular-Elemente in einer Form zu kapseln und gibt ihr einen Submit-Button

          HTML-Code:
          <form action="..." method="POST">
              <select name="select6">
                  ...
              </select>
              <input type="submit" name="submit" ... />
          </form>

          Kommentar


          • #6
            ich kriegs einfach nicht hin
            ich habs mit allem probiert.
            keine chance!

            mein momentander code klar am probieren sieht aber so aus
            PHP-Code:
            [CODE]
            <html>
            <body>

            <form action="11.php" method="post">
            Firstname: <input type="text" name="name" />
            <form method="post">
            <select name="select_name">
            <option value="duti">Test1</option>
            <option value="extreme">Test2</option>
            <option value="gamer">Test3</option>
            </select>
            <input type="submit"></input>
            </form>
            </body>
            </html> 
            <?php
            //Connecting
            include ("mysql.php");
            mysql_select_db("duti") or die("DB existiert nicht");
            /////////////////////////////////////////////////////

            $selected $_POST['select_name'];
            $name $_POST['name'];

            //Daten schreiben
            $write mysql_query("INSERT INTO '$selected' VALUES ('','$name','name2')");

            ?> 
            [/CODE]
            was mach ich falsch??
            Zuletzt geändert von duti; 30.05.2010, 15:37.

            Kommentar


            • #7
              Erstens:

              Du hast ineinander geschachtelte <FORM>-Tags, wobei nur 1 x ein </FORM>-Tag auftaucht. Das ist Mumpitz. Der innere <FORM>-Tag muss weg und dann könnte es HTML-technisch schon klappen.

              Zweitens:

              Code:
              $sql = "INSERT INTO '$selected' VALUES ('', '$name', 'name2')";
              ist Quark!

              Code:
              $sql = "
                  INSERT INTO `$selected` (
                      `spaltenname1`,
                      `spaltenname2`,
                      `spaltenname3`
                  )
                  VALUES (
                      '',
                      \"$name\",
                      \"name2\"
                  )
                  ";
              muss es heißen. Du gibst in der ersten Klammerung an, in welche Spalten die Werte (VALUES) gehören -- beachte die Reihenfolge. Falls Du den ersten Wert niemals setzt, lohnt es sich für die Spalte einen Standardwert zu setzten und den Teil der Query zu sparen.

              Außerdem ist Dein Code anfällig für SQL-Injections!!!!!! Erstens filterst Du die $_POST-Argumente nicht und zweitens gibst Du dem Angreifer die Tabellennamen sogar im plain-HTML preis. Angenommen ich schicke Dir $_POST["select_name"] = "; DROP TABLE `gamer`;". Dann bye-bye gamer-Tabelle
              Zuletzt geändert von tr-oo-per; 30.05.2010, 16:08.

              Kommentar


              • #8
                Das ist genauso falsch. Tabellennamen gehören nicht in Anführungszeichen, wenn dann in Backticks. Außerdem gilt immer noch das bereits gesagte bezüglich der Verkettung und des notwendigen Escapings.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  geht auch nicht lieber tr-oo-per

                  schade. Hab jetzt so lange versucht das zu machen schaff es einfach nicht.
                  Ich gebe es auf. Ich erstell einfach die entsprechenden .php's.

                  Die werte kann man mit dem Option+Select ohne problem einfügen aber die Tabellen mit dem aussuchen schaff ich nicht^^.

                  Danke an allen.. Ihr seid die besten.. das mit der Injection schütz ich auch noch so das der sicherer ist. Danke für den hinweis.

                  Mfg Duti

                  Kommentar


                  • #10
                    Mmh, schade. "geht auch nicht" ohne konkrete Fehlermeldung hilf leider wirklich nicht weiter

                    Kommentar

                    Lädt...
                    X