将if else结构转换为switch case结构

时间:2016-07-28 06:27:15

标签: php

我想将我的if else结构更改为switch case,如何将其更改为switch case。

  <?php
  header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim     ajax Calling request
 mysql_connect("localhost","root","");
 mysql_select_db("ocean");
 if(isset($_GET['type']))
  {
    $res = [];


  if($_GET['type'] =="add"){
    $name  = $_GET ['Name'];
    $lname = $_GET['Lname'];
    $userN = $_GET['User'];
    $passW = $_GET['Pass'];
    $gen = $_GET['Gender'];
    $mail  = $_GET ['Email'];
    $mobile  = $_GET ['Mobile'];
    $address= $_GET['Address'];

    $query1="select uid from oops where email='$mail'";
    $result1= mysql_query($query1);
    if( mysql_num_rows($result1)>0){
        $res["flag"]= TRUE;
        $rest["message"] = "There is already a user with that email!";
    }else{
    $query1  = "insert into oops(username, password, firstname, lastname, gender, email, mobile, address) values('$userN','$passW','$name','$lname','$gen','$mail','$mobile','$address')";
    $result1 = mysql_query($query1);

    if($result1)
    {
        $res["flag"] = true;
        $rest["message"] = "Data Inserted Successfully";
    }
    else
    {
        $res["flag"] = false;
        $rest["message"] = "Oppes Errors";
    }
    } 

  }
   if($_GET['type'] =="edit") { 
      $id=$_GET['id'];   
    $name  = $_GET ['Name'];
    $lname = $_GET['Lname'];
    $userN = $_GET['User'];
    $passW = $_GET['Pass'];
    $gen = $_GET['Gender'];
    $mail  = $_GET ['Email'];
    $mobile  = $_GET ['Mob'];
    $address= $_GET['Address'];
    //$id = $_GET['id'];
   //  echo var_dump($_GET);
     $query1  =("UPDATE oops SET username = '$userN',password = '$passW', firstname= '$name',lastname='$lname',gender = '$gen', email = '$mail', mobile = '$mobile' , address = '$address' WHERE uid = '$id'")or die('fail to update');
    $result1 = mysql_query($query1);
    if($result1)
    {
        $res["flag"] = true;
        $rest["message"] = "Data Updated Successfully";
    }
    else
    {
        $res["flag"] = false;
        $rest["message"] = "Oppes Errors";
    }
   }
   if($_GET['type'] == "delete"){
        $id=$_GET['id'];

       $query1=("DELETE FROM oops WHERE uid='$id'");
       $result1=  mysql_query($query1);
       if($result1){
           $res["flag"] = true;
           $rest["message"] = "User deleted Successfully";
           // header("location:client.php");
       }
       else{
         $res["flag"] = false;
        $rest["message"] = "Oppes Errors";  
       }
   }

}

else{
$res["flag"] = false;
$rest["message"] = "Invalid format";
}

 echo json_encode($rest);

?>

我不知道该怎么做以及如何将isset($_GET['type'])值的值存储到同一页面的变量中

3 个答案:

答案 0 :(得分:0)

switch($_GET['type']) {
    case "add": insert code here; break;
    case "edit": insert code here; break;
    case "delete": insert code here; break;
    default: insert code of last 'else' here;
}

http://php.net/manual/en/control-structures.switch.php

另外请考虑Alexander O'Mara关于消毒用户输入和使用最新功能的评论。 mysql_(没有尾随'i')函数自PHP 5.5.0起已被弃用,并已从PHP 7中删除。

答案 1 :(得分:0)

switch($_GET['type']) {
    case "add":
        //do something
        break;
    case "delete": 
        // do something else etc

    default:
       //if none of the cases apply, do something here (same as else in if-elseif-else)
}

答案 2 :(得分:0)

您可以将类型存储到变量中并使用开关,例如

$type = $_GET['type'];
switch($type){
  case "add":
    ..
    break;
  case "edit":
    ..
    break;
}

请参阅Switch