1

私の MySQL テーブルには、「状態」というラベルの付いた行があります。これには 3 つの値が考えられます。PHP を使用して、状態の「0」に「禁止されていない」をエコーする方法を教えてください。そして、「1」は「禁止」、「3」は「一時禁止」?

MySQL で 0 の代わりに "UnBanned" を表示するには、php をどのように使用すればよいですか? これにはテーブルを使用しています。

<?
          while($row = $result->fetch_assoc()){
          echo'<td>' . $row['player'] . '</td>';
          echo'<td>' . $row['admin'] . '</td>';
          echo'<td>' . $row['reason'] . '</td>';
          echo'<td>' . $row['created_at'] . '</td>';
          echo'<td>' . $row['expires_at'] . '</td>';
          echo'<td>' . $row['state'] . '</td>' . '</tr>';
          }
?>

すべてのヘルプは非常に高く評価されています:)

4

3 に答える 3

3

PHPまたはMySQLを介して実行できます。多くの可能性があります。

SELECT
    CASE
        WHEN state = 0 THEN 'UnBanned'
        WHEN state = 1 THEN 'Banned'
        ELSE 'Temp-Banned'
    END AS state

PHP の場合:

while ($row = $result->fetch_assoc()) {
    switch ($row['state']) {
        case 0: $row['state'] = "UnBanned";
            break;
        case 1: $row['state'] = "Banned";
            break;
        default: $row['state'] = "Temp-Banned";
    }
于 2013-10-07T19:34:51.283 に答える
0

次のコードを使用する州が多くない場合は、 CASE statementin ORを使用できます。MYSQL

<?
          $a = array('0'=>'Unbanned','1'=>'Banned','3'=>'Temp-Banned');
          while($row = $result->fetch_assoc()){
          echo'<td>' . $row['player'] . '</td>';
          echo'<td>' . $row['admin'] . '</td>';
          echo'<td>' . $row['reason'] . '</td>';
          echo'<td>' . $row['created_at'] . '</td>';
          echo'<td>' . $row['expires_at'] . '</td>';
          echo'<td>' . $a[$row['state']] . '</td>' . '</tr>';
          }
?>
于 2013-10-07T19:40:33.437 に答える