动态创建php switch语句的大小写

时间:2011-05-19 23:41:26

标签: php mysql

我在php中编写一个switch语句,它将根据发布的数据确定mysql查询的内容。发布的数据量因数据库而异,后者会创建表单。有什么方法可以让我从数据库中获取可能的情况,因为对所有这些代码执行相同的代码并进行一些特定于案例的修改。我不仅仅使用一种可能性而不是交换机的原因是因为还有其他非数据库相关的情况可以输入交换机。

这可能会让事情变得清晰

我有2页people.php和edit.php。 people.php根据通过get发送的建筑物ID动态创建建筑物中的成员表。从该表中,用户可以从下拉菜单中选择他们想要更改的记录,然后脚本将所有内容发布到edit.php。如果用户希望更改某人的建筑物,那么开关箱就会捕获并创建一个表格,询问他们将更改为哪个建筑物。然后发回edit.php。我是否必须将每个建筑物硬编码到交换机中,还是可以根据mysql中的可用建筑物动态创建案例?

echo"<td><select name='action'> <option value='save' selected='yes'>Save Changes</option> <option value='delete'>Delete Record</option> <option value='more'>Add Additional Phone Numbers and or Email Addresses</option> <option value='building'>Change This person's Building</option> </select></td>"

这是在人员表的每一行中创建的,这将确定表单对edit.php中数据的作用

switch ($_POST['action'])
{
        case 'save':
                update($_POST);
                header("Location: people.php?bid=".$_POST['bid']);
                break;
        case 'delete': //Havent written delete person code yet
                break;
        case 'more': //havent written add more phone number or emails yet
                break;
        case 'building': echo "Move ".$_POST['fname']." ".$_POST['mname']." ".$_POST['lname']." to which building?
                <br/><form action='edit.php' method='POST'><select name='action'>"
                compile_permissions($_SESSION['uid']);
                foreach($_SESSION['buildings'] as $value)
                {
                        $query="select name from schools where bid='$value'";
                        $result=mysql_query($query);
                        $row=mysql_fetch_array($result);
                        echo "<option value='$value'> Move to ".$row['name']."</option>";
                }
                echo "</select><br/><input type='submit' value='Go'></form>"
                break;
        default: header("Location:index.php");
                break;
}

我需要通过此表单将pid和出价传递给edit.php,以便我可以使用查询来更新他们的建筑,我该如何进行此操作?

1 个答案:

答案 0 :(得分:0)

听起来您需要将代码拆分为更多部分,但如果您正在寻找构建动态代码,请查看eval()。您可以构建一个字符串,然后使用它来执行它。目前还不确定这对你有帮助。