-3
經過一天的很多questionmarks我必須問我的問題另一種方式來找到解決方案。如何使用開關?
我有一個切換條款,只適用於第一種情況。第二種情況不會被執行,我不知道爲什麼這不起作用。
這裏是代碼:
if($query->num_rows === 1){
$row = $query->fetch_object();
$Status = $row->Status;
if(isset($_POST['submit'])){
$x1 = $_POST['x1'];
$x2 = $_POST['x2'];
...
$x11 = $_POST['x11'];
$x10Check = $db->query("SELECT * FROM tableB WHERE x10='".$x10."'");
$x11Check = $db->query("SELECT * FROM tableB WHERE x10='".$x10."' AND x11='".$x11."'");
if(empty($x1)||...||empty($x10)||empty($x11)){
if(empty($x1) && $Status == "S0"){
$errors[]="text";
}
if(empty($x4) && ($Status == "S0" || $Status == "S2")){
$errors[]="text";
}
...
if(empty($x11) && ($Status == "S0" || $Status == "S2")){
$errors[]="text";
}
}elseif(strlen($x10)< 5){
$errors[]="no x10";
}elseif(strlen($x10)> 5){
$errors[]="no x10";
}elseif(ctype_digit($x10) === false){
$errors[]="no x10";
}elseif($x10Check->num_rows === 0){
$errors[]="no x10";
}elseif($x11Check->num_rows === 0){
$errors[]="wrong";
}elseif($Status == "S1"){
$errors[]="no changings possible at the moment";
}else{
$x2 = strip_tags($x2);
$x2 = stripslashes($x2);
$x2 = trim($x2);
$x2 = $db->real_escape_string($x2);
...
$x11 = strip_tags($x11);
$x11 = stripslashes($x11);
$x11 = trim($x11);
$x11 = $db->real_escape_string($x11);
if($query->num_rows===1){
switch($Status){
case 'S0':
$update = $db->query("UPDATE table SET x1='".$x1."', ..., x11='".$x11."' WHERE id='".$id."'");
$msg ="text";
$updateStatus = $db->query("UPDATE table SET Status='S1' WHERE id='$id'");
break;
case 'S2':
$update2 = $db->query("UPDATE table SET x4='".$x4."', ..., x11='".$x11."' WHERE id='".$id."'");
$msg ="text";
$updateStatus2 = $db->query("UPDATE table SET Status='S1' WHERE id='$id'");
break;
default:
$errors[]="text error.";
break;
}
}
有沒有人會是誰是友好,可以幫助。我真的很感激。謝謝。
問題是我有一個表單,用戶可以編輯他的個人資料。註冊後,用戶將自動獲得未經檢查註冊的狀態s0。當用戶擁有s0狀態時,他沒有完全訪問所有功能。用戶可以通過首先必須檢查的表單發送更多信息。在他提交信息後,狀態自動從s0變爲s1,這意味着只要他的信息沒有被檢查,他就不能做任何改變。在檢查進度之後,用戶獲得狀態s2。具有該狀態,他具有完全訪問權限,並且可以通過最小化的形式再次編輯他的一些數據。在提交新數據後,他會自動回到s1,因爲必須檢查所有更改。這是主要的問題。 switch子句只在case1之前正常工作。所有更改和錯誤消息都可以正常工作。只有當用戶具有s2狀態並且表單被最小化爲用戶可以改變的幾個字段時,這些改變將不會被髮送,並且也不會顯示錯誤消息。
什麼是錯誤? – Cfreak 2012-03-21 17:55:55
你的問題到底是什麼?您是否測試了$ Status其實是='S2',但是您的switch語句中的第二個case沒有運行,或者您的問題是$ Status永遠不會='S2',所以這種情況不會出現? – 2012-03-21 17:56:53
你在哪裏設置你的$狀態?並且它是否獲得了S2值? – 2012-03-21 17:56:55