Hans: MySql Wert auf Radio Button anwenden

Hallo, hab eine Datenbank in der in einem Feld 0 oder 1 steht. Nun will ich den Inhalt in mein HTML Formular einlesen (ist eine php Datei). Andere Einträge hab ich schon in die input felder eingelesen bekommen. Nur bekomm ich die Unterscheidung beim Radiobutton nicht hin.

<TR>
          <TD WIDTH="100" VALIGN="TOP">
            <font face="arial" size="2">
              Geschlecht:
            </font>
          </TD>
          <TD>
            <INPUT TYPE="Radio" SIZE="30" NAME="Geschlecht" VALUE="Maennlich">männlich<BR>
            <INPUT TYPE="Radio" SIZE="30" NAME="Geschlecht" VALUE="Weiblich">weiblich
          </TD>
       </TR>

Wie bekomm ich das jetzt hin? Komm einfach nicht drauf, wie ich die Unterscheidung mit ner If Abfrage hinbekommen kann. Der Value Wert ist ja hier schon vorgegeben, ich denke ich muss den Eintrag Checked nehmen, raff es aber nicht,

Kann mir jemand weiterhelfen?

Frohes Fest!

  1. Moin Hans,

    »» Hallo, hab eine Datenbank in der in einem Feld 0 oder 1 steht. Nun will ich den Inhalt in mein HTML Formular einlesen (ist eine php Datei). Andere Einträge hab ich schon in die input felder eingelesen bekommen. Nur bekomm ich die Unterscheidung beim Radiobutton nicht hin.

    ohne den genauen Code zu kennen, müsste es in etwa so aussehen:

    echo '
    <INPUT TYPE="Radio" SIZE="30" NAME="Geschlecht" VALUE="0" ';

    if ( $geschlecht_sql == 0 )
       {
         echo '
         checked';
       }

    echo ' > Männlich
    <br>

    <INPUT TYPE="Radio" SIZE="30" NAME="Geschlecht" VALUE="1" ';

    if ( $geschlecht_sql == 1 )
       {
         echo '
         checked';
       }

    echo ' > Weiblich

    </TD>

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Hi Mike, danke für deine Antwort: Habs jetzt mal so reingemacht, allerdings ohne den gewünschten Erfolg

      <TR>
                <TD WIDTH="100" VALIGN="TOP">
                  <font face="arial" size="2">
                    Geschlecht:
                  </font>
                </TD>
                <TD>
                  <INPUT TYPE="Radio" SIZE="30" NAME="Geschlecht" VALUE="Maennlich" <?php if ($_POST['Geschlecht'] == 0) { echo "checked";}?>>männlich<BR>
                  <INPUT TYPE="Radio" SIZE="30" NAME="Geschlecht" VALUE="Weiblich" <?php if ($_POST['Geschlecht'] == 1) { echo "checked";}?>>weiblich
                </TD>
             </TR>

      so allerdings ist die Variable <?php echo $_POST['Geschlecht']?> natürlich leer, denke darum funktioniert es nicht. Auf die anderen Variablen in den Input Felder habe ich immer so:

      <INPUT TYPE="TEXT" SIZE="30" NAME="Wohnort" Value="<?php echo mysql_result($result, 0, "Wohnort")?>">

      zugegriffen, wie bekomm ich das am besten hin?

      Vieeeelen Dank nochmal

      gruss hans

      1. Moin Hans,

        Hi Mike, danke für deine Antwort: Habs jetzt mal so reingemacht, allerdings ohne den gewünschten Erfolg

        ich gehe mal davon aus, das die Radiobuttons entsprechend deiner Abfrage auf die Datenbank makiert sein sollen?!
        Das setzt voraus, das du bereits einen DB Eintrag hast.
        Den neuen Code, welchen du gepostest hast, würde die Radiobuttons erst nach einem (erfolgreichem) Absenden des Formulars makieren.

        Dann nimmst du bitte das Codeschnippsel aus meinem ersten Post und weist der Variable $geschlecht_sql das Ergebnis der Datenbankabfrage zu:

        $query="select geschlecht from meiner_tabelle where name='Mike'";
        $result = mysql_query($query, $db_pointer);

        $liste=mysql_fetch_array($result);
        $geschlecht_sql=$liste['geschlecht'];

        Jetzt sollte, bei einem Treffer, die Variable nicht mehr leer sein.
        ( Ohne den ganzen Code zu sehen, ist es etwas schwierig )

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
        1. Hi Mike, supi habs dank deiner Hilfe hinbekommen. VIELEN DANK!

          gruss hans

    2. Hello Mike,
      hello Hans,

      es ist (für PHP) ungeschickt, einem ausgewählten Radio-Element den Value 0 zuzuweisen.
      Das kann man dann in PHP ganz schlecht mit empty() überprüfen...
      Und beim Vergleich mit 0 müsste man dann auf jeden Fall den Identitätsoperator (===) benutzen.

      Außerdem ist die Eigenschaft (männlich/weiblich) zwar eine einwertige, aber es gibt bei gutem Datenbankdesign mindestens einen dritten Wert, nämlich 'unbekannt'. Nun lacht nicht... ;-)

      Stellt Euch vor, Ihr müsst hunderte von Mitgliedern eines Sportvereins erfassen. Es sind männliche und weibliche. Ihr kenn t die nicht persönlich. Und dazwischen sind dann welche, die heißen 'Kim' und 'Eike' und 'Andrea' und ...

      Wollt Ihr den Datenerfasser dazu zwingen, zu lügen? Also irgendwas in die Efassungsmaske zu tippen, damit er/sie weiter kommt? Damit wäre dann die gesamte Datenkank kaputt, da man später nicht wiedr automatisch herausfinden könnte, welch Datensätze das falsche Geschlecht enthalten. Besser ist es daher, keinen booleschen Wert für derartige Unterscheidungen zu verwenden, sondern einen echten numerischen Schlüssel. Und da kann dann 0 auch für 'bisher nicht ermittelt' stehen. Diese Sätze kann man dann leicht filtern, um sie gezielt zu überarbeiten. Die anderen 7385 Datensätze bleiben aber davon unberührt.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi Tom, haste recht, mal schaun, vielleicht bau ich es noch um... :-)