Werte aus select-Feld abfragen für DB

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

  • Werte aus select-Feld abfragen für DB

    Hallo,
    folgendes: Ich habe eine DB-Tabelle mit einem Feld status, das die Werte 0 und 1 annehmen kann.

    In einem Admin-Bereich habe ich solch ein Formularfeld: http://de.selfhtml.org/html/formular...n_selected.htm

    Nun möchte ich die Möglichkeit, dass alle in dem Formularfeld markierten Einträge in der DB den Wert 0 für das Feld status bekommen und wenn ich sie wieder demarkiere, sie wieder den Wert 1 bekommen.

    Hoffe auf einen Lösungsansatz.

    Gruß!

  • #2
    Re: Werte aus select-Feld abfragen für DB

    http://www.php-faq.de/q/q-formular-select-multiple.html
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke für den Hinweis. Allerdings komme ich damit noch nicht so ganz klar irgendwie...

      PHP-Code:
      <form action="<? echo $_SERVER['PHP_SELF'] ?>" name="formular_deactpics" id="formular_deactpics" method="post">
      <?
      $dropdown_galerien_pics = "SELECT * FROM `projects` ORDER BY id DESC";
      $dropdown_galerien_pics_sql = mysql_query($dropdown_galerien_pics);

      echo '<select multiple="multiple" name="gal_deact[]" id="gal_deact" size="5">';
      while ($gal_overview = mysql_fetch_array($dropdown_galerien_pics_sql))
      {
          echo '<option value="'.$gal_overview['id'].'" selected>'.$gal_overview['name'].'</option>';
      }
      echo "</select>";
      ?>
      <br><input type="submit" value="Speichern" name="deactgal">
      <?
      if($deactgal) {
          if (isset($gal_deact)) {
              foreach ($gal_deact AS $ausgabe) {
                  $deact_gal_sql = mysql_query("UPDATE `projects` SET `status` = '0' WHERE `id` = '$ausgabe'");
              }
          }
      }
      ?>
      </form>
      Mit diesem Code werden alle Galerien aus der DB in eben ein select Feld ausgelesen. Markiert man die Einträge, soll das Feld status in der DB den Wert 0 annehmen, alle nicht markierten sollen den Wert 1 bekommen. Allerdings funktioniert das irgendwie nicht...

      Wenn ich sie markiere, werden zwar die Werte der ausgewählten Elemente in der DB auf 0 gesetzt, allerdings nicht wieder auf 1, wenn ich sie wieder deselektiere.

      Kommentar


      • #4
        mach vorher ein update das alle auf 1 gesetzt werden und die ausgewählt auf 0, so wie du es bereits gemacht hast..

        Kommentar


        • #5
          Ganz genau das war es, sehr trivial.

          Hier der Code für alle, denen es vllt mal hilft:

          PHP-Code:
          <form action="<? echo $_SERVER['PHP_SELF'] ?>" name="formular_deactpics" id="formular_deactpics" method="post">
          <?
          $dropdown_galerien_pics = "SELECT * FROM `projects` ORDER BY id DESC";
          $dropdown_galerien_pics_sql = mysql_query($dropdown_galerien_pics);

          echo '<select multiple="multiple" name="gal_deact[]" id="gal_deact" size="5">';
          while ($gal_overview = mysql_fetch_array($dropdown_galerien_pics_sql))
          {
              if($gal_overview['status'] == "1") {
              echo '<option value="'.$gal_overview['id'].'" selected>'.$gal_overview['name'].'</option>';
              }
              elseif($gal_overview['status'] == "0") {
              echo '<option value="'.$gal_overview['id'].'">'.$gal_overview['name'].'</option>';
              }
          }
          echo "</select>";
          ?>
          <br><input type="submit" value="Speichern" name="deactgal">
          <?
          if($deactgal) {
              mysql_query("UPDATE `projects` SET `status` = '0'");
                  foreach ($gal_deact AS $ausgabe) {
                      mysql_query("UPDATE `projects` SET `status` = '1' WHERE `id` = '$ausgabe'");
                  }
          }
          ?>
          </form>
          Gruß!
          Zuletzt geändert von DerUnsympath; 20.09.2006, 12:37.

          Kommentar


          • #6
            das is aber unnütz:

            `status` = '0' AND

            da ja alle auf 0 stehen..

            Kommentar


            • #7
              Stimmt, war noch ein Überbleibsel aus der alten Lösung. ;-)
              Hab's editiert.

              Danke nochmals!

              Kommentar

              Lädt...
              X