PHP Radiobox checked = Datenbankabfrage

Madagaska

Cadet 3rd Year
Registriert
Jan. 2011
Beiträge
36
Guten Abend,

ich habe ein Formular erstellt bei dem man Spieler anlegen kann es gibt unter anderen ein Feld Nichtraucher hier gibt man beim anlegen über Radiobox Ja oder Nein an. Dabei wird in die MySql Datenbank der Wert Ja oder Nein übergeben. Wenn ich jetzt aber einen Datensatz ändern will, dann soll mittles einer Datenbankabfrage abgefragt werden welcher Wert im Feld NR steht, wenn Ja soll die Radiobox gecheckt sein.

Ich habe diesen Code versucht es kommt keine Fehlermeldung, aber funktionieren tut es auch nicht.

PHP:
$NR="select araucher from aktivitaet where anr=".$_GET['nummer'].";";
$ergebnisNR=mysql_query($NR);
$ausgabeNR=mysql_fetch_object($ergebnisNR);
$eingabeNR=$ausgabeNR->eraucher;

PHP:
  <tr>
      <td>Nichtraucher:</td>
      <td>
      <input name="eraucher" type="radio" id="eraucher" value="Ja" <?php if ($eingabeNR =="Ja") {echo"checked";}?>/> JA
	  <input type="radio" name="eraucher" id="eraucher" value="Nein" <?php if ($eingabeNR =="Nein") {echo"checked";}?>/> NEIN
		</td>
    </tr>

danke im vorraus


gruß Madagaska
 
a) Hast du mit nem echo mal gecheckt ob $eingabeNR auch wirklich Ja bzw Nein ist?
 
PHP:
$NR="select araucher from aktivitaet where anr=".$_GET['nummer'].";";
$ergebnisNR=mysql_query($NR);
$ausgabeNR=mysql_fetch_object($ergebnisNR);
$eingabeNR=$ausgabeNR->eraucher;

Bei $NR suchst du araucher. Die $eingabeNR ist eraucher.

Stimmt das so?
 
Es sollte nicht
Code:
checked
, sondern
Code:
checked="checked"
heissen.
Du musst also nur dein echo im php Code anpassen.

HTML:
<form action="#">
<input type="radio" name="raucher" value="Ja" /> Ich bin Raucher<br />
<input type="radio" name="raucher" value="Nein" checked="checked"/>Ich bin Nichtraucher
</form>
 
Zuletzt bearbeitet: (Typo)
Aha
Ich bekomm jetzt diese Fehlermeldung
"Catchable fatal error: Object of class stdClass could not be converted to string in C:\xampp\htdocs\hak1_fussball\tabelleeinfuegenaendernloeschen\files\edit.php on line 18"

Zeile 17
PHP:
echo $ergebnisNT=mysql_query($NT);
Zeile 18
PHP:
echo $ausgabeNT=mysql_fetch_object($ergebnisNT);
Zeile 19
PHP:
echo $eingabeNT=$ausgabeNT->etrinker;

Das Feld aus der Datenbank hat den Datentyp "varchar"

Aber was kann man jetzt dagegen tun? Irgendwie kann man ja das den Wert der Abfrag nicht in ein String convertieren.

EDIT:

Der Code sollte stimmen, habe den von HIER und da hat er funktioniert.

mit checked="checked" tut sich auch noch nichts
 
Zuletzt bearbeitet:
Um dir das zu beantworten, müssten wir die Struktur deiner Datenbank kennen.
Ich vermute, das deine Abfrage keinen String zurückliefert, sondern eben ein Objekt.
Probier mal ein "print_r" statt eines echos, das könnte helfen die Ausgabe auszuwerten.

PS.: checked="checked" ist korrektes html, auch wenn es dein jetziges Problem nicht löst.
PPS.: Du solltest keinesfalls Usereingaben direkt auf deine Datenbank loslassen.
 
Datenbank- Struktur sieht so aus

Danke für den Tipp mit "print_r"
Jetzt kommt Parse error: syntax error, unexpected T_VARIABLE in
PHP:
$NT="select atrinker from aktivitaet where anr=".$_GET['nummer'].";";
Also fängt der Fehler schon hier an:(
 
Madagaska schrieb:
Zeile 18
PHP:
echo $ausgabeNT=mysql_fetch_object($ergebnisNT);
Zeile 19
PHP:
echo $eingabeNT=$ausgabeNT->etrinker;

Versuch mal so:
PHP:
$ausgabeNT = mysql_fetch_object($ergebnisNT);
$eingabeNT = $ausgabeNT->etrinker;
echo $eingabeNT;

Und bei Zeile 17 auch das echo raus...
 
Hi,

wieso machst du bei Raucher und Trinker eigentlich varchar und nicht einen boolschen Wert? "Ja" und "Nein" bzw "true" und "false" wäre in diesem Fall meiner Meinung nach die bessere Wahl.

VG,
Mad
 
Ganz genau, einfach ENUM['ja','nein','none'] STANDARD 'none'.

Das ganze kannst Du dann so speichern und so auswerten:


Speichern

PHP:
$customers = mysql_real_escape_string($_GET["deinwert"]);
DB -> 
$res = mysql_query(SELECT `table enum` FROM `customers or user` WHERE `userid` ='$customers');
$row = mysql_fetch_array($res);
$raucher = $row["table enum"];
echo '<form action="deinedatei" name="name" method="POST/GET">';
echo '<input type="radio" name="raucher" value="yes"'; if ($raucher =="yes") { echo 'checked'; } echo '> Ja <input type="radio" name="raucher" value="no"'; if ($raucher =="no") { echo'checked'; } echo '> Nein' </form>;

//Speichern ->

PHP:
//Prüfe eingaben:
if(isset($_POST["deinwert"]) {

//leer?
if(!empty($_POST["deinwert"])) {

//Speichere in de DB 

//Customers ist die ID des Benutzers, session, get, post ...  
$customers = $_SESSION["userid"];
$raucher = mysql_real_escape_string($_POST["raucher"]);
mysql_query("UPDATE `table enum` SET `raucher`='".$raucher."' WHERE userid =$customers LIMIT 1") or mysql_error();

} else {
echo 'Das Formular ist leer!';
}

}

Ungetestet, aber so in etwa ^^
 
Zuletzt bearbeitet: (Was vergessen -.....)
Zurück
Oben