-5

I wanted to change my if else structure into switch case how shoul i change it into 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);

?>

I don't know how do that and how do I store the value of isset($_GET['type']) value into variable on same page

Tharif
  • 13,794
  • 9
  • 55
  • 77
oceanier
  • 87
  • 10
  • 5
    Obligatory, you-have-SQL-injection-vulnerabilities, and `mysql_*`-is-obsolete, comment. – Alexander O'Mara Jul 28 '16 at 06:30
  • 3
    Required reading: [How can I prevent SQL-injection in PHP?](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) and [Why shouldn't I use mysql_* functions in PHP?](https://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). – Alexander O'Mara Jul 28 '16 at 06:31
  • 6
    Ugh, you're also using plain-text passwords? This is the worst code I've seen in a long time. Read this too: http://plaintextoffenders.com/faq/devs – Alexander O'Mara Jul 28 '16 at 06:33
  • 1
    @alexander thanks for your tips I do follow your suggessions in future .I also use mysqli in my code but it stores empty values into database – oceanier Jul 28 '16 at 06:43

3 Answers3

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

Also please take into consideration the comments of Alexander O'Mara about sanitizing user inputs and using up-to-date functions. mysql_ (without trailing 'i') functions are deprecated since PHP 5.5.0 and have been removed from PHP 7.

MadMarc
  • 120
  • 1
  • 11
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)
}
Janno
  • 542
  • 4
  • 15
0

You may store the type into a variable and use switch on it e.g.

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

See Switch

Philip YW
  • 150
  • 1
  • 2
  • 15