PHP / HTML在sql查询

时间:2017-01-30 02:34:22

标签: php html mysql

我不知道如何标题我的问题,我基本上都在问是否有人知道更好的方法来解决这个问题。我正在使用下面的这个函数来显示从DB中提取哪个选项,我想知道是否有更紧凑的方式或更好的方法来执行此操作除了每个ID

function access_option($access)
{
    if ($access == 0)
    {
        echo '<option value="0" selected>Member</option>
        <option value="1">Streamer</option>
        <option value="2">Moderator</option>
        <option value="3">Manager</option>
        <option value="4">Administrator</option>
        <option value="5">Senior Administrator</option>';
    }
    elseif ($access == 1)
    {
        echo '<option value="0">Member</option>
        <option value="1" selected>Streamer</option>
        <option value="2">Moderator</option>
        <option value="3">Manager</option>
        <option value="4">Administrator</option>
        <option value="5">Senior Administrator</option>';
    }
    elseif ($access == 2)
    {
        echo '<option value="0">Member</option>
        <option value="1">Streamer</option>
        <option value="2" selected>Moderator</option>
        <option value="3">Manager</option>
        <option value="4">Administrator</option>
        <option value="5">Senior Administrator</option>';
    }
    elseif ($access == 3)
    {
        echo '<option value="0">Member</option>
        <option value="1">Streamer</option>
        <option value="2">Moderator</option>
        <option value="3" selected>Manager</option>
        <option value="4">Administrator</option>
        <option value="5">Senior Administrator</option>';
    }
    elseif ($access == 4)
    {
        echo '<option value="0">Member</option>
        <option value="1">Streamer</option>
        <option value="2">Moderator</option>
        <option value="3">Manager</option>
        <option value="4" selected>Administrator</option>
        <option value="5">Senior Administrator</option>';
    }
    elseif ($access == 5)
    {
        echo '<option value="0">Member</option>
        <option value="1">Streamer</option>
        <option value="2">Moderator</option>
        <option value="3">Manager</option>
        <option value="4">Administrator</option>
        <option value="5" selected>Senior Administrator</option>';
    }
}

这是最好的方法吗?

3 个答案:

答案 0 :(得分:4)

使用三元运算符可以减少重复次数:

function access_option($access)
{
    echo '<option value="0"'.($access == 0 ? ' selected' : '').'>Member</option>';
    echo '<option value="1"'.($access == 1 ? ' selected' : '').'>Streamer</option>';
    echo '<option value="2"'.($access == 2 ? ' selected' : '').'>Moderator</option>';
    echo '<option value="3"'.($access == 3 ? ' selected' : '').'>Manager</option>';
    echo '<option value="4"'.($access == 4 ? ' selected' : '').'>Administrator</option>';
    echo '<option value="5"'.($access == 5 ? ' selected' : '').'>Senior Administrator</option>';
}

答案 1 :(得分:3)

您可以循环保存在数组中的值,并动态设置所选值。此方法可以通过调整数组 -

轻松添加/删除选项
function access_option($access)
{
    $options = ["Member", "Streamer", "Moderator", "Manager", "Administrator", "Senior Administrator"];
    foreach($options as $key=>$value)
    {
        echo '<option value="'.$key.'"'.($key==$access ? ' selected' : '').'>'.$value.'</option>';
    }
}

答案 2 :(得分:0)

三元运算符会减小它的大小,如另一个答案所述。您也可以使用switch语句。与if和elseif类似,但更容易并且会减少您的代码。

示例:

<?php
function access_option($access)
{
 switch ($access) {
    case 0: echo "access equals 0";
    case 1: echo "access equals 1";
    case 2: echo "access equals 2";
 }
}
?>