0

スタッフのメンバーごとに一時停止されたブール値があります。スタッフ メンバーを表に表示するときに、1 または 0 ではなく、"SUSPENDED" または "NOT SUSPENDED" というテキストを表示したいと考えています。

私はエラーを受け取り続けます、通知:未定義の定数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

インデックスを引用する必要があります。それ以外の場合、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 に答える
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 に答える