checkbox auslesen, ändern und übergeben an Mysql

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

  • checkbox auslesen, ändern und übergeben an Mysql

    Hallo Ihr Lieben, Ihr seit meine letzte Hoffnung.
    Nachdem ich nun den ganzen Tag mich mit checkboxen beschäftigt habe,
    alle mir bekannten Foren durchforstet, und neue Rekorde im Dauergoogeln aufgestellt habe. Besitze ich zwar nun eine Funktionstüchtige Lösung, nur ehrlich gesagt verstehe ich nicht so ganz warum die eigentlich funkionert.

    Folgende Aufgabenstellung hab ich versucht zu realisieren.

    Möcht 3 Checkboxen auslesen aus einer MySQL Datenbank.
    Das Ergebnis anzeigen lassen und ggf Änderungen vornehmen.
    Diese sollen mit einem submit wieder in die Datenbank geschrieben werden.
    Für diesen Zweck habe ich in der db 3 Felder als tinyint(1) erstellt.(int01, int02, int03)

    Zuerst Lese ich die Daten aus der Datenbank:
    PHP-Code:
    $sql="select * FROM $tabellenname where id='$id'";
    $sql="select * FROM $tabellenname where id='$id'";
    $result mysql_query($sql$link);
    for(
    $i=0;$i<mysql_num_rows($result);$i++)
    {
    $ergebnis[$i]=mysql_fetch_array($result);

    Ergebnisse werden zugewiesen:
    PHP-Code:
    $int011=$ergebnis[$i][int01];
    $int021=$ergebnis[$i][int02];
    $int031=$ergebnis[$i][int03]; 
    und noch die checkboxen:
    PHP-Code:
    if($int011>=1) {
    echo
    "<td><input type='checkbox' name='int01' value='2' checked>Fußball</td>"
    }
    else { echo
    "<td><input type='checkbox' name='int01' value='1'>Fußball</td>"
    }
    if(
    $int021>=1) {
    echo
    "<td><input type='checkbox' name='int02' value='2' checked>Segeln</td>"
    }
    else { echo
    "<td><input type='checkbox' name='int02' value='1'>Segeln</td>"
    }
    if(
    $int031>=1) {
    echo
    "<td><input type='checkbox' name='int03' value='2' checked>Golf</td>"
    }
    else { echo
    "<td><input type='checkbox' name='int03' value='1'>Golf</td></tr>"

    Das ganze wird nach einem submit noch per update in die db wieder geschrieben.

    Mein größtest Problem ist eigentlich, daß es nach gut einer Stunde Dauertest bis jetzt immer richtig Angezeigt wird.
    Und ich mir nicht vorstellen kann das es der richtige Lösungsansatz ist.

    Nun bin ich noch verstörter wie ohne Funktion

    Für Hinweise aller Art wär ich dankbar.

    Vielleicht kommt mir ja die Erleuchtung in der Horizonalen.

    Grüße und gute Nacht

    pumpel
    Zuletzt geändert von pumpel; 08.11.2004, 02:44.

  • #2
    Naja es ist vielleicht etwas umständlich geschrieben, aber sonst tut das Script doch die Arbeit

    Aber da mir langweilig war - und ich irgendwie die Nacht rumkriegen muss hab ich dir das mal etwas gekürzt

    PHP-Code:
    <?php
    // Deine Grunddaten
    $id "123";
    $tabellenname "hobbies";
    $link mysql_connect("server""login_name""login_pass");
    mysql_select_db("datenbankname"$link);

    // Wenn das Formular abgeschickt wurde
    if ($_POST['submit']) {
      
    // Wenn die Checkbox gesetzt wurde hat sie den value-Wert ansonsten ist sie leer und erhält eine 0 als Wert
      
    if ($_POST['int01']) $int01 $_POST['int01'];
      else 
    $int01 0;
      if (
    $_POST['int02']) $int02 $_POST['int02'];
      else 
    $int02 0;
      if (
    $_POST['int03']) $int03 $_POST['int03'];
      else 
    $int03 0;
      
    // Die UPDATE-Anweisung an die Datenbank
      
    mysql_query("UPDATE $tabellenname SET int01 = '$int01', int02 = '$int02', int03 = '$int03' WHERE id = '$id'"$link);
    }

    // Datenbankabfrage
    $sql "SELECT int01, int02, int03 FROM $tabellenname WHERE id='$id'";
    $result mysql_query($sql$link);

    // Schleife habe ich hier mal weggelassen, da es sich ja um eine spezielle ID handelt
    list($int01$int02$int03) = mysql_fetch_array($result);

    // Nun ein einfaches Formular. Wenn die Variablen den Wert von "1" haben soll "checked" angezeigt werden
    ?>

    <form action="check.php" method="post">
    <input type="checkbox" name="int01" value="1" <?php if ($int01 == "1") echo "checked"?>/> Fussball<br>
    <input type="checkbox" name="int02" value="1" <?php if ($int02 == "1") echo "checked"?>/> Segeln<br>
    <input type="checkbox" name="int03" value="1" <?php if ($int03 == "1") echo "checked"?>/> Golf<br>
    <input type="submit" name="submit" value="Abschicken" />
    </form>

    Kommentar


    • #3
      Hallo Mudder,
      Deine Nachtschicht hat mir sehr geholfen :-)

      Gruß Olli
      Manus manum lavat.

      Kommentar

      Lädt...
      X