[英]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.