0

我对每个员工都有一个暂停的布尔值。在表格中显示工作人员时,我想显示文本“暂停”或“未暂停”而不是 1 或 0。

我不断收到错误,注意:使用未定义的常量 Staff_Suspension - 假定为'Staff_Suspension' 我确定这对 php 来说很简单,我只是卡住了,不想再浪费时间试图解决这个问题,却一无所获。帮助表示赞赏

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    echo "\t<tr>\n";
        echo "\t\t<td> $row[Staff_ID] </td>\n";
        echo "\t\t<td> $row[Staff_Forename] </td>\n";
        echo "\t\t<td> $row[Staff_Surname] </td>\n";
        echo "\t\t<td> $row[Staff_Email] </td>\n";
        echo "\t\t<td>";

        if ($row[Staff_Suspension] == 1){
            echo 'Suspended';
        } else if ($row[Staff_Suspension] == 0){
            echo 'Not Suspended';
        }

        echo "</td>\n";
        echo "\t\t<td> $row[Staff_Delete_Permissions] </td>\n";
    echo "\t</tr>\n";

}
4

2 回答 2

3

回答:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    echo "\t<tr>\n";
        echo "\t\t<td>". $row['Staff_ID'] ".</td>\n";
        echo "\t\t<td>". $row['Staff_Forename'] ."</td>\n";
        echo "\t\t<td>". $row['Staff_Surname']". </td>\n";
        echo "\t\t<td>". $row['Staff_Email'] ".</td>\n";
        echo "\t\t<td>";

        if ($row['Staff_Suspension'] == 1){
            echo 'Suspended';
        } else if ($row['Staff_Suspension'] == 0){
            echo 'Not Suspended';
        }

        echo "</td>\n";
        echo "\t\t<td>". $row['Staff_Delete_Permissions'] ".</td>\n";
    echo "\t</tr>\n";

}

粗略解释

常量的使用主要来自于define(); 你不需要一个变量来获取常量值

出现此错误的原因来自以下几行:

    if ($row[Staff_Suspension] == 1){
        echo 'Suspended';
    } else if ($row[Staff_Suspension] == 0){
        echo 'Not Suspended';
    }

因为您通过名称指定数组的键。你应该用引号括起来,双引号或单引号由你决定。

常量示例:

define ('Name', 'ConstantValue');
echo Name;

这将输出:ConstantValue

现在,通过阅读以上内容:

http://php.net/manual/en/function.define.php

该链接是对常量值的粗略解释。

现在针对您的具体问题。

$row[Staff_Suspension] 您已经定义了一个常量值,因为这是一个列名,所以应该用引号括起来。

如果您从键号指定: $row[0]; 这是一个不同的故事,与您的问题无关。

于 2013-03-25T02:04:38.407 回答
3

您必须引用索引。否则,PHP 假定您已经定义了一个名为Staff_Suspension. 如果不存在这样的常量,则假定您要指定字符串文字。引用消除了任何猜测工作(因此,任何通知):

if ($row['Staff_Suspension'] == 1) {
    echo 'Suspended';
} elseif ($row['Staff_Suspension'] == 0) {
    echo 'Not Suspended';
}

或者,简化:

echo $row['Staff_Suspension'] ? 'Suspended' : 'Not Suspended';
于 2013-03-25T02:04:30.487 回答