Formular mit Radiobuttons

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

  • Formular mit Radiobuttons

    Hallo, folgendes Problem:

    Ich habe eine Liste von xx Personen. Ich möchte nun über ein Formular verschiedene Personen einer Kategorie zuweisen. Dies möchte ich über radiobuttons machen, aber alle Personen sollen bei der Zuweisung auf einer html-seite stehen. Im Grunde soll das ungefähr so aussehen:

    Name | Kategorie 1 | Kategorie 2 | Kategorie 3 | Kategorie 4
    ---------------------------------------------------------------------------------
    Person 1 | 1 | 2 | 3 | 4
    Person 2 | 1 | 2 | 3 | 4
    Person 3 | 1 | 2 | 3 | 4
    Person 4 | 1 | 2 | 3 | 4
    Person 5 | 1 | 2 | 3 | 4
    Person 6 | 1 | 2 | 3 | 4

    Die Spalten mit den Kategorien sollen, wie oben erwähnt, radiobuttons sein. Wie schaffe ich es nun, dass alle Personen im gesamten in der Datenbank aktualisiert werden, d.h. wie benenne ich die einzelnen radiobuttons, denn value soll ja immer nur 1 oder 2 oder 3 etc. sein.

    Jedesmal, wenn ich dem radiobutton folgenden Namen gebe: kategorie$person kann ich für jede Person in Spalte und Reihe meine Auswahl treffen. Aber in der db habe ich keine Spalte, die kategorie$person heißt, sondern nur Kategorie.

    Wenn ich nun die buttons nur kategorie nenne, kann ich nur eine Auswahl pro Spalte treffen.

    Wie schaffe ich es nun?
    Zuletzt geändert von Kiruma; 16.07.2002, 08:52.

  • #2
    Du kannst das alles über die Namensvergabe bei den Radiobuttons machen...

    Die Abfrage richtet sich danach, wie du die Tabelle "Updaten willst", löschen und neu schreiben, oder die Datensätze einzeln Updaten!

    Wie ist der Aufbau dieser Tabelle ?? Hast du eine seperate Tabelle für die Bennutzerdaten ??

    gruss

    Kommentar


    • #3
      Die Spieler definieren sich aus einer Tabelle "Spieler" in der Datenbank. Jeder Spieler hat seine eigene ID. Nun gibt es die Spalten Block, PPBlock und PKBlock. In die Spalte Block soll der Wert 0 (wenn nicht aufgestellt),1,2,3 oder 4; in PPBlock 0,1 oder 2; in PKBlock 0,1 oder 2.
      Zuletzt geändert von Kiruma; 17.07.2002, 01:52.

      Kommentar


      • #4
        Hoi,

        nenn die Radiobuttons einfach "info[person]" und setz den Value auf 1,2,3 bzw. 4. Also z.B:

        <INPUT TYPE="radio" NAME="info[person1]" VALUE="1">
        <INPUT TYPE="radio" NAME="info[person1]" VALUE="2">
        <INPUT TYPE="radio" NAME="info[person1]" VALUE="3">
        <INPUT TYPE="radio" NAME="info[person1]" VALUE="4">

        <INPUT TYPE="radio" NAME="info[person2]" VALUE="1">
        <INPUT TYPE="radio" NAME="info[person2]" VALUE="2">
        <INPUT TYPE="radio" NAME="info[person2]" VALUE="3">
        <INPUT TYPE="radio" NAME="info[person2]" VALUE="4">

        Dann hast du in php ein 2dim. Array mit Person->Team ;-)

        MfG

        Felix
        Hello World

        Kommentar


        • #5
          Vielen Dank, und es hat sich somit erledigt

          Kommentar


          • #6
            So, es hat sich doch nicht so ganz gelöst, da ich doch unfähiger bin, als ich dachte

            Hier der Code mit dem ich mir die Leute anzeigen lasse:
            echo "<TR align=center><TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>";
            echo "$spieler_pos";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>";
            echo "$spieler_name";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>";
            echo "$spieler_vorname";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>";
            echo "$spieler_gesamt_stärke";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>";
            echo "$spieler_alter";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#FFFF00><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=block[$spieler_id] VALUE=1>";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#FFFF00><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=block[$spieler_id] VALUE=2>";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#FFFF00><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=block[$spieler_id] VALUE=3>";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#FFFF00><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=block[$spieler_id] VALUE=4>";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#3399FF><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=pk[$spieler_id] VALUE=1>";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#3399FF><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=pk[$spieler_id] VALUE=2>";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#FFFF00><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=pp[$spieler_id] VALUE=1>";
            echo "</font></P></TD>";
            echo "<TD bgcolor=#FFFF00><P><font face=Verdana size=2 color=#000000>";
            echo "<INPUT TYPE=radio NAME=pp[$spieler_id] VALUE=2>";
            echo "</font></P></TD>";

            In der Tabelle möchte ich nun die Spieler bei den 3 Spalten "block","pk","pp" aktualisieren. Da nun ein Team aus ca. 20-25 Spielern besteht, würde ich alles in einem Rutsch machen.

            Kann jemand helfen?

            Kommentar


            • #7
              Wo ist das Problem?
              Du hast alle Spieler schon in der Datenbank?
              Also
              PHP-Code:
              <?php
              //für die radios machen wir eine Funktion:
              function radio ($name$id$wert$maxwert$bgcolor)
              {
                for (
              $i=1$i<=$maxwert$i++)
                echo 
              '
                <TD bgcolor="'
              $bgcolor'"><P
                  ><font face="Verdana" size="2" color=#000000"
                  ><INPUT TYPE="radio" NAME="'
              $name'['$id']" ',
                    (
              $i==$wert 'checked ':''), 'VALUE="'$i'"> '$i'
                </font></P></TD>'
              ;
              }
              // Query an die DB ...
              $q mysql_query("select * from Spieler");
              // ... und dann die Spieler in einer Schleife ausgeben
              while ($x mysql_fetch_assoc($q))
              {
                
              $spieler_id $x['id'];
                echo 
              "<TR align=center><TD bgcolor=#99CCFF
                  ><P><font face=Verdana size=2 color=#000000
                  >
              $x[pos]</font></P></TD>";
                echo 
              "<TD bgcolor=#99CCFF
                  ><P><font face=Verdana size=2 color=#000000
                  >
              $x[name]</font></P></TD>";
                echo 
              "<TD bgcolor=#99CCFF><P
                  ><font face=Verdana size=2 color=#000000
                  >
              $x[vorname]</font></P></TD>";
                echo 
              "<TD bgcolor=#99CCFF><P
                  ><font face=Verdana size=2 color=#000000
                  >
              $x[gesamt_stärke]</font></P></TD>";
                echo 
              "<TD bgcolor=#99CCFF><P
                  ><font face=Verdana size=2 color=#000000
                  >
              $x[alter]</font></P></TD>";
                
              radio('block'$id$x['block'], 4'#FFFF00');
                
              radio('pk'$id$x['pk'], 2'#3399FF');
                
              radio ('pp'$id$x['pp'], 2'#FFFF00');
                echo 
              '</tr>';
              }
              dann hast du nach dem Absenden des Formulars die Arrays $block, $pk und $pp; jeweils mit der Spieler-ID als Index; und kannst die übertragenen Werte folgendermaßen speichern:
              PHP-Code:
              foreach($block as $id=>$b)
                
              mysql_query("update spieler
                  set block=
              $b, pk=$pk[$id], pp=$pp[$id]
                  where id=
              $id"); 
              Zuletzt geändert von Titus; 23.07.2002, 10:33.
              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


              • #8
                Also, irgendwie baut er mir keine Verbindung auf

                Und wenn ich sie mal hatte, hat er mir eine Endlosschleife produziert und ich konnte lauter Blockzahlen lesen. Aber es liegt wohl an meiner Art zu verbinden

                // Query an die DB ...

                $q = mysql_query("select * from hm_spieler");


                // ... und dann die Spieler in einer Schleife ausgeben

                Welche Parameter muss ich da noch setzen. Irgendwie stehe ich total auf dem Schlauch : ))))))

                So habe ich es:

                // Query an die DB ...

                $verbindung = mysql_connect("$db_host","$db_user","$db_pass");

                $sqlstring = "SELECT *
                FROM $db_name.hm_spieler,$db_name.hm_user
                WHERE email='$auth_user' AND spieler_team_id=verein";

                $q = mysql_query($sqlstring,$verbindung);


                // ... und dann die Spieler in einer Schleife ausgeben
                Zuletzt geändert von Kiruma; 17.07.2002, 09:51.

                Kommentar


                • #9
                  Was ist mit mysql_select_db?
                  Zuletzt geändert von Titus; 17.07.2002, 11: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


                  • #10
                    Jetzt habe ich es hinbekommen, aber die Daten werden nicht aktualisiert, obwohl ich alle Variablen an die Datenbank angepasst habe.

                    Irgendwas aus deinem Skript mag die Sache nicht so ganz, bzw. ich bin zu doof Ich füge mein geändertes Skript mal ein:

                    <?

                    //für die radios machen wir eine Funktion:
                    function radio ($spieler_name, $spieler_id, $wert, $maxwert, $bgcolor)
                    {
                    for ($i=1; $i<=$maxwert; $i++)
                    echo '
                    <TD bgcolor="', $bgcolor, '"><P><font face="Verdana" size="2" color=#000000">
                    <INPUT TYPE="radio" NAME="', $spieler_name, '[', $spieler_id, '] ',
                    ($i==$wert ? 'checked ':''), 'VALUE="', $i, '"> ', $i, '
                    </font></P></TD>';
                    }





                    // Query an die DB ...

                    $verbindung = mysql_connect("$db_host","$db_user","$db_pass");

                    $sqlstring = "SELECT *
                    FROM hockey_manager_de.hm_spieler,hockey_manager_de.hm_user
                    WHERE email='$auth_user' AND spieler_team_id=verein";

                    $q = mysql_query($sqlstring,$verbindung);


                    // ... und dann die Spieler in einer Schleife ausgeben

                    while ($x = mysql_fetch_assoc($q))
                    {
                    $spieler_id = $x['spieler_id'];
                    echo "<TR align=center><TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_pos]</font></P></TD>";
                    echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_name]</font></P></TD>";
                    echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_vorname]</font></P></TD>";
                    echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_gesamt_stärke]</font></P></TD>";
                    echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_alter]</font></P></TD>";
                    radio('block', $spieler_id, $x['block'], 4, '#FFFF00');
                    radio('pk', $spieler_id, $x['pk'], 2, '#3399FF');
                    radio ('pp', $spieler_id, $x['pp'], 2, '#FFFF00');
                    echo '</tr>';

                    foreach($block as $spieler_id=>$b)

                    mysql_query("update hockey_manager_de.hm_spieler
                    set spieler_block=$b,spieler_block_pk=$pk[$spieler_id], spieler_block_pp=$pp[$spieler_id]
                    where spieler_id=$spieler_id");
                    }



                    ?>

                    Kommentar


                    • #11
                      Denk doch auch maln bisken mit ...
                      Das Update darf natürlich erst nach Abschicken des Formulars ausgeführt werden:
                      wenn im Formular action="update.php" steht
                      muss die Schleife mit der Update-Query in update.php rein

                      http://selfhtml.teamone.de/html/form...definieren.htm

                      Hast du PHP schon mal benutzt?
                      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


                      • #12
                        Hehe ich bin blutiger Anfänger und stelle mir immer unlösbare Aufgaben

                        Kommentar


                        • #13
                          schreib ruhig dazu, dass du rookie bist,
                          dann kann man sich von Anfang an drauf einstellen
                          und die Erklärungen in einer günstigeren Reihenfolge geben.

                          Hier reißt dir keiner den Kopp ab.
                          (nun ... zumindest ich nicht)
                          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


                          • #14
                            Gut, denn ich wollte schon nicht mehr antworten, dass nichts klappt

                            Es geht einfach gar nichts Und ich komme nicht dahinter warum. Liegt vielleicht daran, dass ich die Funktion überhaupt nicht lesen kann. Ich schaue es mir an und verzweifle, da ich noch nie mit funktionen gearbeitet habe.

                            Ich habe bisher immer so gearbeitet, wie Du es in meinem ersten skript siehst. Könntest Du mir nicht daher einfach eine Update-möglichkeit für dieses skript bieten, dann kann ich es vielleicht besser nachvollziehen.

                            Vielen Dank.

                            Kommentar


                            • #15
                              neuer Versuch

                              Die beiden Skripte sehen jetzt so aus:

                              Spielerauswahl:
                              <?

                              //für die radios machen wir eine Funktion:
                              function radio ($spieler_name, $spieler_id, $wert, $maxwert, $bgcolor)
                              {
                              for ($i=1; $i<=$maxwert; $i++)
                              echo '
                              <TD bgcolor="', $bgcolor, '"><P><font face="Verdana" size="2" color=#000000">
                              <INPUT TYPE="radio" NAME="', $spieler_name, '[', $spieler_id, '] ',
                              ($i==$wert ? 'checked ':''), 'VALUE="', $i, '"> ', $i, '
                              </font></P></TD>';
                              }





                              // Query an die DB ...

                              $verbindung = mysql_connect("$db_host","$db_user","$db_pass");
                              mysql_select_db("$db_name", $verbindung);

                              $sqlstring = "SELECT *
                              FROM hm_spieler
                              WHERE spieler_team_id='999'";

                              $q = mysql_query($sqlstring,$verbindung);


                              // ... und dann die Spieler in einer Schleife ausgeben

                              while ($x = mysql_fetch_assoc($q))
                              {
                              $spieler_id = $x['spieler_id'];
                              echo "<TR align=center><TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_pos]</font></P></TD>";
                              echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_name]</font></P></TD>";
                              echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_vorname]</font></P></TD>";
                              echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_gesamt_stärke]</font></P></TD>";
                              echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_alter]</font></P></TD>";
                              radio('block', $spieler_id, $x['block'], 4, '#FFFF00');
                              radio('pk', $spieler_id, $x['pk'], 2, '#3399FF');
                              radio ('pp', $spieler_id, $x['pp'], 2, '#FFFF00');
                              echo '</tr>';

                              }



                              ?>

                              das Update habe ich nun so:

                              <?

                              $verbindung = @mysql_connect("$db_host","$db_user","$db_pass");

                              mysql_select_db("$db_name", $verbindung);


                              foreach($block as $spieler_id=>$b)

                              $result = mysql_query("update hm_spieler
                              set spieler_block=$b,spieler_block_pk=$pk[$spieler_id], spieler_block_pp=$pp[$spieler_id]
                              where spieler_id='$spieler_id'");

                              ?>

                              Wieso wird die Datenbank nun nicht aktualisiert? Ich habe es jetzt einige tage versucht, aber... Danke für die Hilfe
                              Zuletzt geändert von Kiruma; 23.07.2002, 02:04.

                              Kommentar

                              Lädt...
                              X