B-18Plus: Im Formular als Option Datenbankinhalt einbauen

Abnd,
ich möchte ein Formular erstellen in dem man als Option Inhalte aus meiner Datenbank wählen kann.
Leider habe ich keinen Schimmer wie das funktionieren könnte.
Wäre klasse wenn mir da jmd. beim Code helfen könnte...

---------------------------------
<form method="post" action="galerie_ansicht_02.php">

<?php
  include 'connect.php';
  $res1 = mysql_query("SELECT ordner FROM galerie");
  if (!$res1)
  {
      echo "Ein Fehler ist aufgetreten.\n";
  }
  else
  {
     while ($row = mysql_fetch_array($res1))
    {
       // Hier muss dann wohl der Code rein (option..)

}
  mysql_free_result($res1);
  }
  include 'disconnect.php';
  ?>
  <br>
  <input name="galerie_ansicht" type="submit" id="schreiben" value="Ordner ansehen">
</form>
--------------------------

Vielen Dank!!

  1. Hello,


    <form method="post" action="galerie_ansicht_02.php">

    <?php
      include 'connect.php';
      $res1 = mysql_query("SELECT ordner FROM galerie");
      if (!$res1)
      {
          echo "Ein Fehler ist aufgetreten.\n";
      }
      else
      {

    $_options = array();
            while ($row = mysql_fetch_assoc($res1))

    {
           // Hier muss dann wohl der Code rein (option..)

    $_options[row[$id]] = $row['spaltenname'];

    }
      mysql_free_result($res1);
      }

    #    und hier kannst Du dann aus dem Array $_options das HTML fürs Select-Element aufbauen:
    #    besser ist aber, Du machst eine Funktion daraus.

    $html  = "    <select>\r\n";

    foreach ($_options as $optionkey => $optiontext)
         {
             $html .= "        <option .... >\r\n     ## das musst Du mal selber fertig machen
         }

    $html  = "    </select>\r\n";

    nur ao als Skizze ...

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Abnd, erstmal vielen Dank für deine Ausführungen. Das meiste habe ich mehr oder weniger verstanden, nur den letzten Teil (s.u.) habe ich nicht so richtig geblickt.

      -------------------------------

      $html  = "    <select>\r\n";

      foreach ($_options as $optionkey => $optiontext)
           {
               $html .= "        <option .... >\r\n     ## das musst Du mal selber fertig machen
           }

      $html  = "    </select>\r\n";

      ------------------------------

      Jedenfalls sieht mein Code jetzt wiefolgt aus, das Problem dabei ist dass mir momentan als Auswahlmöglichkeit nur der Eintrag mit der höchsten ID zur verfügugn steht...

      ------------------------------
      <form method="post" action="galerie_ansicht_02.php">
        Ordner(Spiel):

      <?php
        include 'connect.php';

      $res1 = mysql_query("SELECT ordner FROM galerie");
        $res2 = mysql_fetch_row( $res1 );
        $res3 = $res2[0];

      if (!$res1)
        {
        echo "Ein Fehler ist aufgetreten.\n";
        }
        else
        {
         $_options = array();
             while ($row = mysql_fetch_assoc($res1))
             {
                  $_options = $row['ordner'];
             }
      echo "<select name="ordner" size="1">";
      echo "<option>";
      echo $_options;
      echo "</option>";
      echo "</select>";
              mysql_free_result($res1);
        }

      include 'disconnect.php';
        ?>

      <br>
        <input name="galerie_ansicht" type="submit" id="schreiben" value="Ordner ansehen">
      </form>
      ----------------------------

      Vielen dank für die hoffentlich folgende Hilfe!

      1. Hello,

        [...]

        das ist ja auch falsch.

        Warum hast Du denn nicht meine Passage fertig gemacht?
        http://de.selfhtml.org/html/formulare/auswahl.htm

        $html  = "    <select name="myselect[]">\r\n";

        foreach ($_options as $optionkey => $optiontext)
              {
                  $html .= "        <option value="$optionkey">".htmlspecialchars($optiontext,ENT_QUOTES)."</option>\r\n";
              }

        $html .= "    </select>\r\n";

        Dann brauchst Du nur noch $html an geeigneter Stelle auszugeben.
        Und mach aus der obien Passage ruhig eine Funktion!

        Liebe Grüße aus Syburg bei Dortmund

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Abnd,

          $html  = "    <select name="myselect[]">\r\n";

          foreach ($_options as $optionkey => $optiontext)
                {
                    $html .= "        <option value="$optionkey">".htmlspecialchars($optiontext,ENT_QUOTES)."</option>\r\n";
                }

          $html .= "    </select>\r\n";

          Kleine Frage dazu:

          foreach ($_options as $optionkey => $optiontext)
          --> was genau wird hier gemacht?
          mal davon abgesehen bekomme ich wenn ich das so einbinde folgenden Fehler: "Warning: Invalid argument supplied for foreach() in..."

          Grüße aus Aachen

          Benjamin

          1. Hello,

            $html  = "    <select name="myselect[]">\r\n";

            foreach ($_options as $optionkey => $optiontext)
                   {
                       $html .= "        <option value="$optionkey">".htmlspecialchars($optiontext,ENT_QUOTES)."</option>\r\n";
                   }

            $html .= "    </select>\r\n";

            Kleine Frage dazu:

            foreach ($_options as $optionkey => $optiontext)
            --> was genau wird hier gemacht?
            mal davon abgesehen bekomme ich wenn ich das so einbinde folgenden Fehler: "Warning: Invalid argument supplied for foreach() in..."

            *arrgh*

            Foreach() übernimmt nimmt ein Array in der Variable $_options. Das muss vorher darin aufgebaut worden sein. Die Meldung, die Du bekommen hast, deutet darauf hin, dass in $_oprions _kein_ Array vorhanden war oder $_options überhaupt nicht angelegt worden ist.

            Dieses Array arbeitet foreach() nun in der ersten Ebene Element für Element ab und übergibt dieses als Kopir an die Variablen für [key] => value,  hier von mir $optionkey und $optiontext genannt.

            Mit diesen kann dann in der foreach()-Schleife gearbeitet werden.

            Du musst also zuerst Deine Abfrage durchführen, wie Du das auch schon vollkommen richtig gemacht hattest. Nach der Abfrage überführst Du durch die Schleife  "while($_row = mysql_fetch_assoc($res))"  die Werte aus dem Abfrage-Puffer in das Array $_options.

            lass Dir das nach der Übertragung doch einfach mal anzeigen:

            echo "<pre>\r\n";
               echo htmlspecialchars(print_r($_options,1));
               echo "</pre>\r\n";

            Und dann übergibst Du das Array $_options an Deine Funktion (die Du hoffentlich nun aus dem Stückchen Code gemacht hast) und lässt Dir mit Hilfe von foreach() die html-Variable für das Select aufbauen.

            Wenn Du Dir solche kleinen Helferlein (Funktionen) für den Aufbau von HTML-Code aufbaust, kannst Du die vermutlich immer wieder benutzen. Was in der Funktion dann 10 bis 20 Zeilen beansprucht, benötigt nachher im Script dann nur noch ein bis drei Zeilen in der Anwendung.

            Versuch noch mal, den kompletten Code aufzubauen und poste ihn dann nochmal komplett und sauber formatiert :-)

            Liebe Grüße aus Syburg bei Dortmund

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de