PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Radio-Buttons auslesen


Airis
15.11.2004, 15:43:15
Hallo PHP-Gemeinde,

ich mochte die Daten eines Formulares in eine MySQL-Datenbank schreiben. Es funzt auch soweit, bis auf die Radio-Buttons. Irgend etwas ist noch falsch aber was?
Das ist die verkürzte Version meines Scripts:

<?php
if (isset($action) && ($action == "insert") ) {

$Transfer= $_POST["GESCHLECHT"];
$Paypal= $_POST["GESCHLECHT"];

/*** Hier die entsprechenden Werte eintragen. ***/
$dbhost = "localhost";
$dbname = "Mitglieder";
$dbpass = "xxx";
$dbuser = "xyz";

mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

$sql = "insert into address ( GESCHLECHT)
values ( '$m', '$w')";
mysql_query($sql) or die("DB-Abfrage <b>$sql</b> ist fehlgeschlagen");
echo '<p>OK, Daten in die Datenbank geschrieben.</p>';
}
else {
/*** Ansonsten Anzeige des Formulares ***/
?>

<form action="<?php echo $PHP_SELF ?>" method="post">
<input type="hidden" name="action" value="insert">
<table border=0 align=center cellspacing=1 cellpadding=0 class=bmborder width="700">

<tr><td class=bm2><br>
<table border=0 width=90% class=bmborder align=center border="0" cellpadding="1" cellspacing="1">

<tr>
<td class=bm2 align=left><font face="Arial" size="4" color="#000000">GESCHLECHT:</font></td>
</tr>
<tr>
<td class=bm2 align=center><INPUT TYPE="radio" NAME="GESCHLECHT" VALUE="<?php echo $m ?>">männlich</td>
</tr>
<tr>
<td class=bm2 align=center><INPUT TYPE="radio" NAME="GESCHLECHT" VALUE="<?php echo $w ?>">weiblich</td>
</tr>
<tr>
<td class=bm2 align=center><input type="submit" value="Eintragen" class="bm5"></td>
</tr>

</form>
</table>
</td>
</tr>
</table>


<?php
}
?>



Die Datenbank "Mitglieder", die Tabelle "address" und der Texteintrag "Mitglieder" sind vorhanden.

Als Fehlermeldung kommt:


DB-Abfrage insert into address ( GESCHLECHT) values ( '', '') ist fehlgeschlagen


Vieleicht kann mal jemand drüber schauen und mir einen Tipp geben.

Airis

Yzerman
15.11.2004, 15:53:08
Original geschrieben von Airis
$sql = "insert into address ( GESCHLECHT)
values ( '$m', '$w')";

Das kann nicht stimmen. Du gibst nur einen Feldnamen an, aber zwei Werte!

Airis
15.11.2004, 16:04:00
Hallo Yzerman,

wenn ich das richtig sehe haben Radio-Buttons nur einen gemeinsamen Namen oder ist das falsch.

Airis

Yzerman
15.11.2004, 16:22:51
Nein, das stimmt. Aber Deine Query ist falsch.
Ich denke, die muss so heißen:


$sql = "INSERT INTO address (GESCHLECHT)
VALUES ('" . $_POST['GESCHLECHT'] . "')";


Ansonsten solltest Du Dir einen saubereren Stil aneignen. Groß- und Kleinschreibung wechseln sich in schöner Regelmäßigkeit ab.
Feldnamen von MySQL-Tabellen schreibt man i.d.R. klein, MySQL-Schlüsselwörter hingegen groß.
Auch Dein HTML geht da ganz schön durcheinander.

Airis
15.11.2004, 16:38:56
Danke für Deine Antwort, hilft aber auch nur bedingt weiter.
Jetzt kommt zwar kein Fehler mehr. Nur noch:
OK, Daten in die Datenbank geschrieben.
aber es erfolgt kein Datenbank-Eintrag.

Airis

c4
15.11.2004, 16:44:05
Dummbatz, ich.

Yzerman
15.11.2004, 21:10:39
Original geschrieben von Airis
aber es erfolgt kein Datenbank-Eintrag.
Hast Du vor dem Eintrag in die DB mal einen Dump der Variable gemacht um zu sehen, ob sie überhaupt richtig gesetzt ist?