1

我正在尝试根据 MySQL 数据库中的值设置单选按钮的“已检查”状态。该代码的主要目的是成为“编辑用户配置文件数据”脚本。我设法从数据库中获取所有信息,并且如果用户选择,所有内容都会被编辑,但我似乎无法使单选按钮工作。我收到以下消息:

注意:使用未定义的常量 Male - 在第 57 行的 C:\xampp\htdocs\Signup\user_panel.php 中假定为“Male”

我检查了这个通知,但我找不到与单选按钮和通知相关的任何内容。

这是代码:

<form action="includes/user_panel.php" method="POST">
                <table>
                    <tr>
                        <td><label for="email"> E-mail </label></td>
                        <td><input type="email" name="email" id="email" value="<?php echo "{$fetch['email']}"; ?>"></td>
                    </tr>
                    <tr>
                        <td><label for="first_name"> First name </label></td>
                        <td><input type="text" name="first_name" id="first_name" value="<?php echo "{$fetch['first_name']}"; ?>"></td>
                    </tr>
                    <tr>
                        <td><label for="last_name"> Last name </label></td>
                        <td><input type="text" name="last_name" id="last_name" value="<?php echo "{$fetch['last_name']}"; ?>"></td>
                    </tr>
                    <tr>
                        <td><label for="birthday"> Birthday </label></td>
                        <td><input type="date" name="birthday" id="birthday" value="<?php echo "{$fetch['birthday']}"; ?>"></td>
                    </tr>
                    <tr>
                        <td><label for="sex"> Sex </label></td>
                        <?php
                        if ($fetch['sex'] = male)
                        {
                            echo "<td><input type='radio' name='sex' value='male' id='sex' checked> Male <input type='radio' name='sex' value='female' id='sex'> Female </td>";
                        }
                        else
                        {
                            echo "<td><input type='radio' name='sex' value='male' id='sex'> Male <input type='radio' name='sex' value='female' id='sex' checked> Female </td>";
                        }
                        ?>
                    </tr>
                </table>
                </br>
                <input type="submit" name="edit_user" value="Edit" class="button_1">
                <input type="hidden" name="edit_user_data">
            </form>

附加信息:

$initial_email = $_SESSION['email'];
$username = $_SESSION['username'];
$query_user_panel="SELECT * FROM users WHERE email = '$initial_email' OR username= '$username'";
$result_user_panel=mysql_query($query_user_panel) or die (mysql_error());
$fetch = mysql_fetch_assoc($result_user_panel)

第 57 行是带有“if”的行。

向下滚动代码,您会看到应该检查性别的位置。我尝试使用“如果”,但这会产生我写的通知。

我知道 MySQL 已经过时了,我应该使用 MySQLi。如果你有时间,请检查这个问题:最简单的 MySQL 到 MySQLi 的转换

非常感谢您,如果我需要编辑我的帖子或提供其他数据,请告诉我。

4

4 回答 4

5

您的问题是您必须忘记放 == 而不是 = 以及必须将 Male 放在引号中。

它应该如下所示:

if ($fetch['birthday'] == "Male")

另外,您确定生日字段是检查性别的正确字段吗?

于 2013-09-14T15:46:46.450 回答
2

我发现有三个错误

1) $fetch['birthday'],我觉得应该是另外一个字段名,比如sex

2) if ($fetch['birthday'] = Male),=应该是==这样,if ($fetch['birthday'] == "Male")

3) if ($fetch['birthday'] == "Male"),你错过了字符串的双引号,所以应该是 "Male"

<?php

    if ($fetch['birthday'] == "Male")
    {
        echo "<td><input type='radio' name='sex' value='male' id='sex' checked> Male <input type='radio' name='sex' value='female' id='sex'> Female </td>";
     }
     else
     {
        echo "<td><input type='radio' name='sex' value='male' id='sex'> Male <input type='radio' name='sex' value='female' id='sex' checked> Female </td>";
     }
 ?>
于 2013-09-14T15:47:12.627 回答
1

试试这个 if ($fetch['sex'] == 'Male')

于 2013-09-14T15:46:58.017 回答
1

我还想要一个解决方案,当从数据库中提取数据以编辑表单时,如果帐户为“ Active ”,它将检查“ Active ”单选按钮,如果该帐户为“ Inactive ”,它将检查Inactive单选按钮html 表单。我在 mysql 数据库中使用 tinyint 使用:1 -活动和 0 -非活动 我使用的成功执行此操作的代码如下:

<label for="Active">Active</label>
<input id="Active" type="radio" name="Active" value="1"<?php if ($row['Active'] == 1): ?> checked = "checked"<?php endif; ?> />

<label for="Active">Inactive</label>
<input id="Active" type="radio" name="Active" value="0"<?php if ($row['Active'] != 1): ?> checked = "checked"<?php endif; ?> />

因此,当我查询一条记录并且它在数据库字段中的值为“ 1 ”时, Active单选按钮将被填充,Inactive按钮为空,当我查询一条记录并且它在数据库中的值为“ 0 ”时字段,则Inactive单选按钮将被填充,Active按钮为空。

希望这可以帮助

于 2013-10-03T16:06:14.523 回答