Checkboxen Frage

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

  • Checkboxen Frage

    Hallo Leute - ich mal wieder!

    Habe folgendes Problem: Habe einen Fragebogen mit ca. 200 Checkboxen.
    Wenn ich diverse Checkboxen angekreuzt habe und auf Submit klicke, solle für JEDE einzelne CHECKBOX in einer MySQL Datenbank ein neuer Datensatz angelegt werden.

    Ich kann aber nicht jede checkbox mit

    If (checkbox1 == 1) {
    mysql_query ("INSERT INTO blablabla");
    }

    abfragen - das wäre doch ein riesiges Script......
    Man kann das doch bestimmt mit arrays lösen - wenn ja wie???

    Wisst Ihr vielleicht ne Möglichkeit???

    Mfg
    Sascha



  • #2
    im Formular:

    <input type="checkbox" name="checkbox[]" value="1">1
    <input type="checkbox" name="checkbox[]" value="2">2
    <input type="checkbox" name="checkbox[]" value="3">3

    ...

    im Script
    for ($i=0; $i<count($checkbox); $i++)
    mysql_query ("INSERT INTO checkbox (WERT) values (".$checkbox[$i].")");

    Es werden nämlich nur die Values definiert, die gecheckt wurden.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Comment


    • #3
      Vielen Dank! Hast mir sehr weitergeholfen......

      Bis bald :-)


      Comment


      • #4
        Ahoi,

        geht das auch wenn man Daten löschen möchte ?
        Ich bin schon seit ein paar Tagen echt am verzweifeln.

        In einer PHP-Datei "loeschen.php" lasse ich mir alle Daten ausgeben.

        Es handelt sich um eine Tabelle (mitglieder) mit zwei Spalten
        (vorname und zuname). In den jeweiligen Feldern stehen dann
        entsprechend Vornamen und Nachnamen drin.

        Das Auslesen geschieht über eine Schleife.
        Da habe ich einen input reingesetzt, damit vor jedem ausgegebenen
        Datensatz eine Checkbox angezeigt wird.

        PHP Code:
        // Daten auslesen
        echo "<form action='loeschen_02.php' method='post'>";
        $result mysql_query("SELECT * FROM mitglieder");
        while(
        $data mysql_fetch_assoc($result)) {
                      foreach (
        $data as $spalte => $wert) {
                        echo 
        "<input type='checkbox' name='checkbox[]' value='checkbox'>";
                        echo 
        "$spalte$wert<br>";
                        }
                      echo 
        "<br>";}
        echo 
        "<br>"
        Ich habe die Input-Zeile mal frecherweise hier übernommen. :-)

        So, nach Klick auf die Schaltfläche Senden wir die Datei loeschen_02.php
        aufgerufen. Hier möchte ich nun, daß die markierten Daten auch gelöscht
        werden.

        Mein letzter Versuch sah so aus:
        PHP Code:
        for ($i=0;$i<count($checkbox);$i++)
        {
        mysql_query ("DELETE FROM mitglieder WHERE ('$checkbox')"
                or die (
        "<br><br>Fehler beim L&ouml;schvorgang<br><br>".mysql_error());

        Naja, ich bekomme zwar keine Fehlermeldungen, aber gelöscht wird
        es auch nicht. Ich müßte (glaube ich) eine ID vergeben, um einen
        Datensatz auch eindeutig zu markieren...oder ?

        Das Problem ist ja auch, daß theoretisch der Vorname gelöscht werden
        kann und der dazugehörige Zuname in der Datenbank bleibt.
        Das soll natürlich nicht sein.

        Das mit den Zuordnungen habe ich echt nicht drauf.

        Kann mir jemand weiterhelfen ?

        Danke

        Souli

        Comment


        • #5
          man kann, aber SO nicht

          1. du musst HTML-seitig in value die id des jeweiligen Datensatzes übergeben
          2. in dein Delete musst du: ... where id=".$checkbox[$i]; auch angeben.

          Comment


          • #6
            Original geschrieben von asp2php
            2. in dein Delete musst du: ... where id=".$checkbox[$i]; auch angeben.
            wenn du das nicht vorher noch absicherst, übergebe ich dir als wert der checkbox einfach id *eg*
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Comment


            • #7
              SQL-Injektion werden sie schon selbst lernen müssen .

              Comment

              Working...
              X