从单选按钮的 php 中检索 mysql 值

Retrieve mysql value from php for radio buttons

尽管看起来微不足道,但我在通过 PHP 从 MySql 数据库中检索单选按钮的值时遇到了问题。这是我的第一个学习项目,所以我会尽力

问题已经被问过,但我没有找到有用的答案。

php 代码做了一个简单的 "Select *" 所以我检索了所有字段。

这是php代码

<label>Owner: <?php echo $row['Owner']; ?></label></br>
<input type="radio" name="Owner" checked=<?php if($row['Owner'] = "A") { echo "true"; }?>  value="A">A
<input type="radio" name="Owner" checked=<?php if($row['Owner'] = "B") { echo "true"; }?> value="B">B</br></br>

然后我使用 mysqli_fetch_array() 检索值。

这是结果:

如您所见,标签检索了正确的值,但单选按钮没有。

我已经尝试用 == 代替 = 并用 ' 代替 " 但我不知道为什么复选框 "B" 被选中,因为 Owner 值为 A.

此外,如果有任何比这更好的最佳实践,欢迎您。

不要尝试此代码 =,而是使用 ==

<input type="radio" name="Owner" <?php if($row['Owner'] == "A") { echo "checked"; }?> value="A">

HTML attribute checked 不应该得到一个值,它的存在表明单选按钮被选中。所以这样做:

<label>Owner: <?php echo $row['Owner']; ?></label></br>
<input type="radio" name="Owner" <?php if($row['Owner']=="A") {echo "checked"}?> value="A">A
<input type="radio" name="Owner" <?php if($row['Owner']=="B") {echo "checked"}?> value="B">B

或者使用更紧凑的 short echo tag <?= .. ?> and ternary operator:

<label>Owner: <?=$row['Owner']?></label></br>
<input type="radio" name="Owner" <?=$row['Owner']=="A" ? "checked" : ""?> value="A">A
<input type="radio" name="Owner" <?=$row['Owner']=="B" ? "checked" : ""?> value="B">B

请注意,您需要使用双等号进行比较。

我尝试了@trincot 给出的答案,但它给我错误,所以我做了一些小改动来改进答案

<input type="radio" name="Owner" <?php if($row['Owner']=="A") {?> <?php echo "checked";?> <?php }?> value="A">A

<input type="radio" name="Owner" <?php if($row['Owner']=="B") {?> <?php echo "checked";?> <?php }?> value="B">B
$gender=$row['gender'];


<input type="radio" name="gender" <?php if($gender=="Male"){?> checked="true" <?php } ?> />Male

<input type="radio" name="gender" <?php if($gender=="Female"){?> checked="true" <?php } ?>/>Female
$owner=$row['owner'];
$owners= ['A'=>'', 'B'=> ''];
$owners[$owner] = 'checked';

<input type="radio" name="Owner" <?php echo $owners['A']?>  value="A">A
<input type="radio" name="Owner" <?php echo $owners['B']?>  value="B">B

如果您在数据库中有很多值,我认为它简单易行且非常有用。