select mit hilfe von checkboxes?

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

  • select mit hilfe von checkboxes?

    moin!

    ich habe so eine art quiz geschrieben (sozusagen ein übungsprojekt um in php einzusteigen)

    jetzt habe ich gank viele fragen in der db, die alle bestimmten kapiteln zugeordnet sind (feld "kapitel" in der tabelle)

    wenn man sich jetzt die fragen abrufen will, soll man über checkboxes kapitel auswählen können, zu denen man fragen lernen/anzeigen will.

    ich habe das soweit mit "select distinct kapitel from fragen order by kapitel asc" gelöst und erzeuge dann checkboxes so:

    while ($row=mysql_fetch_array($result)) {
    $kapitel = $row["kapitel"];
    echo "<input type=\"checkbox\" name=\"wahlkapitel\" value=\"$kapitel\">Kapitel $kapitel<br>";
    }

    meine frage nun: wie erzeuge ich aus dem erzeugten string "wahlkapitel" ein select statement, dass mir dann später fragen aus den gewünschten kapiteln zurück gibt? oder soll ich das anders lösen? für einen lustigen vorschlag wäre ich ganz dankbar

    grüsse,
    andy


  • #2

    so:
    http://www.php-resource.de/forum/sho...?threadid=3511

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      hm, nee, entweder verstehe ich nicht, was da steht, oder ich weiss es nicht umzusetzen.

      mit meinen checkboxen bin ich ja ganz zufrieden, nur:
      mir fehlt irgendwie sowas:

      "select * from fragen where kapitel = [das,was der user angecheckt hat z.b. 1,5,n]"

      sorry, ich bin halt noch nicht so fit in den sachen

      der andere thread, den du da gepostet hast, ist ja mehr "werte in den checkboxen halten, wenn die seite neu aufgerufen wird", das kann ich nicht so gebrauchen glaub ich

      gruss,
      andy

      Kommentar


      • #4
        "select * from fragen where kapitel_id IN (0,8,15)"
        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.

        Kommentar


        • #5
          okidoki, das hilft schonmal weiter

          vielleicht noch einen kleinen hinweis, wie ich aus den checkboxes nachher am besten dieses select-statement generiere?

          soll ich da ein array benutzen? feste variablen gehen ja nicht, weiss ja vorher nie, wieviele kapitel in der datenbank sind

          grüsse,
          andy

          Kommentar


          • #6
            formular.php:
            Code:
            <form action="auswert.php">
            <?php
              $q = mysql_query ('select ID, NAME from KAPITEL order by ID asc');
              while (list($id, $name) = mysql_fetch_row($q))
                echo '<input type="checkbox" name="kapitel[]"',
                  ' value="', $id, '">', $name, '<br>';
            ?>
            </form>
            Wichtig sind die eckigen Klammern in den Namen der Checkboxen; die sorgen dafür dass bei Absenden des Formulars in auswert.php automatisch ein Array $kapitel entsteht.

            auswert.php:
            Code:
            // wenn kein Kapitel gewählt, Query ohne Result faken
            if (!isset($kapitel))
              $q = mysql_query ('select * from FRAGEN where 0>1');
            // sonst Alle Fragen aus dem Kapitel holen
            else
              $q = mysql_query ("select * from FRAGEN
                where KAPITEL_ID in (". implode(',', $kapitel).")
                order by KAPITEL_ID, ID");
            // jetzt per Schleife ausgeben
            ...
            Wenn du dazu auch noch die Namen der Kapitel zu jeder Frage haben willst, erweitere die letzte Query einfach folgendermaßen:
            Code:
              $q = mysql_query ("select [b]FRAGEN.[/b]*[b], KAPITEL.NAME[/b]
                [b]from FRAGEN, KAPITEL[/b]
                where KAPITEL_ID in (". implode(',', $kapitel).")
                [b]and KAPITEL.ID=FRAGEN.KAPITEL_ID[/b]
                order by KAPITEL[b].[/b]ID, [b]FREAGEN.[/b]ID");

            [Editiert von Titus am 04-03-2002 um 19:12]
            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.

            Kommentar

            Lädt...
            X