簡體   English   中英

為php switch語句動態創建案例

[英]Dynamically creating cases for a php switch statement

我正在用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和bid傳遞給edit.php,以便我可以使用查詢來更新其建築物,該如何進行呢?

聽起來確實需要將代碼分成更多部分,但是如果您要構建動態代碼,請查看eval()。 您可以構建一個字符串,然后使用它來執行它。 目前尚不確定這是否對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM